在我的Model项目中(它只有持久类,也就是java bean)我有一个具有复合主键的类。为了映射这个,我在班上使用了两个@Id。在休眠4之前它是不可能的,但现在它是好的。所以,问题是,eclipse在这个类中显示错误,说它应该以旧方式完成。 像这样:
正如我所说,这是一个错误的错误,因为如果我执行它,代码工作正常。 我在eclipse上安装了JBoss Tools插件,但我不知道这些错误是由它还是由eclipse引起的。
任何人都知道如何解决这个问题?并不是说它阻止我执行应用程序,但总是显示错误是一件烦人的事情。
---编辑---
所以,现在我知道问题出在JBoss Tools上,因为我停用了项目上的JPA方面并且错误已经停止。但我希望我可以使用JBoss Tools提供的功能,所以......还没有解决方案。
答案 0 :(得分:22)
好吧,差不多晚了一年,但我今天自己也遇到过这个问题: - )
您可以在Eclipse中关闭此错误。转到
偏好设置 - > Java持久性 - > JPA->错误/警告
在Type部分下查找类别"在定义多个ID映射时必须使用ID类。"并将其从“错误”更改为“忽略”(或者您要为其提供的任何严重性)。
答案 1 :(得分:0)
如果你有一个复合键,你也应该有一个复合键类
像这样映射的东西:
@Entity
@IdClass(PK_BP.class)
@Table(name="BP_BIS")
public class BP_BIS implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
private String BP_MODE;
@Id
private String BP_BD;
复合键类将如下所示:
public class PK_BP implements Serializable
{
private static final long serialVersionUID = 1L;
private String BP_MODE;
private String BP_BD;
public PK_BP()
{}
public PK_BP(String bP_MODE, String bP_BD) {
this.BP_MODE = bP_MODE;
this.BP_BD = bP_BD;
}
}