12

在我的模型项目(它只有持久类,又名 java bean)中,我有一个具有复合主键的类。为了映射这个,我在课堂上使用了两个@Id。在休眠 4 之前这是不可能的,但现在可以了。所以,问题是,eclipse在这个类中显示一个错误,说它应该以旧的方式完成。像这样:

错误的错误

正如我所说,这是一个错误的错误,因为如果我执行它,代码就可以正常工作。我在 Eclipse 上安装了 JBoss Tools 插件,但我不知道错误是由它还是由 Eclipse 引起的。

有谁知道如何解决这个问题?并不是说它阻止我执行应用程序,而是总是显示错误是一件烦人的事情。

- - 编辑 - -

所以,现在我知道问题出在 JBoss 工具上,因为我在项目中停用了 JPA 方面并且错误已经停止。但我希望我可以使用 JBoss Tools 提供的工具,所以……还没有解决方案。

4

2 回答 2

29

好吧,已经晚了将近一年,但我今天自己也遇到了这个问题:-)

您可以在 Eclipse 中关闭此错误。去

首选项->Java 持久性->JPA->错误/警告

在“类型”部分下,查找“定义多个 ID 映射时必须使用 ID 类”类别。并将其从 Error 更改为 Ignore (或您想要给予它的任何严重性)。

于 2015-01-09T18:24:58.980 回答
2

好吧,如果你有一个复合键,你也应该有一个复合键类

像这样映射的东西:

@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;
    }

}
于 2014-01-15T10:36:54.960 回答