对复合主键使用多个@Id时出现 Eclipse 错误

2022-09-04 06:30:39

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

False error

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

有人知道如何解决这个问题吗?并不是说它阻止我执行该应用程序,但是始终显示错误是一件令人讨厌的事情。

--- 编辑---

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


答案 1

好吧,这几乎晚了一年,但我今天自己遇到了这个问题:-)

您可以在 Eclipse 中关闭此错误。转到(G)

Preferences->Java Persistence->JPA->错误/警告

在“类型”部分下,查找类别“定义多个 ID 映射时必须使用 ID 类”,并将其从“错误”更改为“忽略”(或要为其提供的任何严重性)。


答案 2

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

映射如下:

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

}

推荐