为什么IntelliJ的JPA检查告诉我“为字段'id'配置了多个属性”?

时间:2013-03-05 14:00:25

标签: jpa intellij-idea

我有许多一般形式的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'配置了多个属性”。

enter image description here

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

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

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

看来这是一个错误。这里有报道:https://youtrack.jetbrains.com/issue/IDEA-129147如果你希望看到解决方案,你可以进行投票。