我正在学习Hibernate和
Java Persistence API.
我有一个@Entity类,需要对各个字段应用注释.我已经在下面的代码中列出了他们可以去的三个地方.
我应该把它们应用到场地本身,吸气剂还是吸气器?这三个选项之间的语义差异(如果有的话)是甚么.
import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.Id; @Entity @Table(name = "song") public class Song { // Annotations should only be applied to one of the below @Id @Column(name="id",unique=true,nullable=false) private int id; @Id @Column(name="id",nullable=false) public int getId() { return id; } @Id @Column(name="id",nullable=false) public void setId(int id) { this.id = id; } }
解决方法
你必须在现场和吸气剂之间进行选择.不支持设置器上的注释.所有注释都应该在字段上,或者它们都应该在getter上:你不能混合使用这两种方法(除非使用
@AccessType
注释).
关于哪一个更喜欢,答案是:这取决于.我更喜欢现场访问,但是YMMV,并且在某些情况下,财产访问是最喜欢的.见Hibernate Annotations – Which is better,field or property access?.