我在JPA中的实体映射存在以下问题.我有两个实体,第一个是Lookup,第二个是Text,它代表实体的翻译.现在我需要将Lookup绑定到Text但我不希望Text引用Lookup.为了使这更复杂,Text不会在此关系中使用其主键,而是在TXTHEAD_CODE列中定义的元代码 .
Lookup.java
@Entity
@Table(name = "DATREG")
public class Lookup implements PersistableEntity {
@Id
@Column(name = "DATREG_META_CODE")
private String metaCode;
@OneToMany
@JoinTable(name="TXT",
joinColumns=@JoinColumn(name="DATREG_META_CODE", referencedColumnName="TXTHEAD_CODE"),
inverseJoinColumns=@JoinColumn(name="DATREG_META_CODE"))
private List<Text> text;
Run Code Online (Sandbox Code Playgroud)
Text.java
@Entity
@Table(name = "TXT")
public class Text {
@Id
@Column(name = "TXT_ID")
private Long id;
@Column(name = "TXTHEAD_CODE")
private String code;
Run Code Online (Sandbox Code Playgroud)
所以我尝试了这个(以及其他一些变化),但没有结果.我也无法在数据库中创建连接表,我不希望绑定查找到我的Text类.那么有人可以告诉我是否有其他方式?
为什么Maven默认会跳过我的所有测试呢?我的pom.xml配置文件很少,而且我无法通过它们运行我的测试.我的一个档案看起来像
<profile>
<id>jsf-test</id>
<dependencies>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-arquillian-container-remote</artifactId>
<version>${jboss.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jsf.tests</groupId>
<artifactId>jsf-app</artifactId>
<version>${jsf-app.version}</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-jsf-app</id>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.jsf.tests</groupId>
<artifactId>jsf-app</artifactId>
<version>${jsf-app.version}</version>
<type>war</type>
<destFileName>jsfapp.war</destFileName>
<outputDirectory>target</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire.version}</version>
<configuration>
<skipTests>false</skipTests> <!-- desperate trial -->
<properties>
<property>
<name>listener</name>
<value>${testng.listeners}</value>
</property>
</properties>
</configuration>
</plugin>
</plugins>
</build>
</profile>
Run Code Online (Sandbox Code Playgroud)
如果我运行mvn verify -Pjsf-test然后编译项目,则将jsf-app工件正确复制到目标目录中并跳过测试.mvn verify -Dtest=TestCalculator有相同的结果.我正在使用Arquillian并TestNG …
我想要完成的是浏览页面,等待加载某些内容然后获取并保存屏幕截图.
我已经拥有的代码是
WebDriver driver = new FirefoxDriver();
driver.get("http://www.site.com");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
try {
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("/home/Desktop/image.png"));
} catch (Exception e) {
e.printStackTrace();
}
driver.close();
Run Code Online (Sandbox Code Playgroud)
我需要等待的原因,即使页面被加载是因为它将被加载但在网站上我想要在几秒钟后拍摄负载的内容.由于某种原因页面没有等待,是否有另一种方法可以让驱动程序/页面等待X秒?
我在这里找不到任何合理的答案所以我希望它不是重复的.那么为什么我更喜欢setter或构造函数注入而不是简单
@Inject
MyBean bean;
Run Code Online (Sandbox Code Playgroud)
如果你需要在类初始化期间对注入的bean执行某些操作,我会使用构造函数注入
public void MyBean(@Inject OtherBean bean) {
doSomeInit(bean);
//I don't need to use @PostConstruct now
}
Run Code Online (Sandbox Code Playgroud)
但是,它几乎和@PostConstruct方法一样,我根本没有得到setter注入,它不仅仅是Spring和其他DI框架之后的遗物吗?
有没有办法如何通过命令行将编译器参数传递给Maven?我知道我可以指定它compiler-plugin但我也想从命令行运行Xlint.所以我尝试了类似的东西
mvn clean install -DskipTests=true -DcompilerArgument=-Xlint:deprecation
Run Code Online (Sandbox Code Playgroud)
但没有成功.
我正在尝试使用pxssh模块与客户端建立SSH连接 - 但是我得到了
ImportError: No module named pxssh
Run Code Online (Sandbox Code Playgroud)
我在Python安装中找到了这个文件,所以我猜这是正确的
/usr/lib/python2.7/site-packages/pexpect/pxssh.py
Run Code Online (Sandbox Code Playgroud)
我当然用Python 2.7运行我的应用程序,我甚至尝试导入,pexpect但这没有帮助.
那么,有什么提示吗?谢谢
我有一个ArrayList,其中包含具有属性名称和时间的对象.我想根据名称删除重复项,并保留最新时间的记录.所以我在我的对象中使用覆盖equals和hashcode名称,并使用这样的代码.
private List<ChangedRecentlyTO> groupRecords(List<ChangedRecentlyTO> toList) {
changedRecentlyList.clear(); //static list
for(ChangedRecentlyTO to : toList) {
if(!changedRecentlyList.contains(to)) {
changedRecentlyList.add(to);
} else {
if(changedRecentlyList.get(changedRecentlyList.lastIndexOf(to)).getTimeChanged().before(to.getTimeChanged())) {
changedRecentlyList.remove(to);
changedRecentlyList.add(to);
}
}
}
return changedRecentlyList;
}
Run Code Online (Sandbox Code Playgroud)
但我想知道,有没有更好的解决方案?我正在考虑使用Set,但我无法弄清楚我应该如何制定时间标准.
有没有办法如何在某个特定项目中搜索文件或类(我的意思是Ctrl + Shift + T或R),而不是在所有工作区中?我有Eclipse Indigo.
我有一个简单的问题-是什么样的区别UTF-8,UTF-16和UTF-32?我知道,编码字符串有不同的尺寸,但什么是UTF-16和UTF-32呢?Should't UTF-8能够正确地处理所有的语言?怎么UTF-7适合这个?
编辑
好吧,我比较了解整个事情的技术方面,但我仍然没有看到我应该使用的原因,UTF-16而不是UTF-8在我的应用程序中.所以我的问题是 - 其他编码的实际用法是什么UTF-8呢?
有没有办法如何在程序到达断点时停止调试(即我不想在它之后执行代码)而不停止整个应用程序服务器(我用Java编程应用程序,服务器是JBoss)?
我只知道如何停止调试的一种方法 - 标题为Terminate的红色按钮关闭服务器.那还有什么吗?