4

我有许多通用形式的 JPA 实体类:

@Entity
@Table(name = "MY_TABLE", catalog = "", schema = "VBMSUI")
@NamedQueries({...})
public class MyEntity implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID")
    @GeneratedValue(strategy=GenerationType.SEQUENCE,
            generator="MY_TABLE_ID_SEQ")
    @SequenceGenerator(name="MY_TABLE_ID_SEQ",
            sequenceName = "MY_TABLE_ID_SEQ")
    private BigDecimal id;
...
}

IntelliJ 的检查工具用红色下划线“id”,并提供消息 -“为字段 'id' 配置了多个属性”。

在此处输入图像描述

类中没有其他属性被标识为 id。“id”有一个 getter 和一个 setter,但它们没有注释。顺便说一句,实体类的代码是由 NetBeans 生成的,它似乎可以工作。

发生了什么,我该如何纠正?

4

2 回答 2

8

这似乎是因为您在同一属性上同时拥有@Id和注释(快速修复建议删除其中任何一个)。@Basic我不是 JPA 方面的专家,但它对我来说似乎是有效的,所以这可能是 IntelliJ 检查中的一个错误,应该在他们的 bugtracker中报告。

于 2013-03-05T16:13:08.760 回答
3

看来这是一个错误。此处已对此进行了报道:https ://youtrack.jetbrains.com/issue/IDEA-129147 如果您希望看到解决方案,可以对其进行投票。

于 2015-02-25T19:16:06.057 回答