在Hibernate中,放置@Id
注释
在现场声明之前
@Id
private int id;
之前和它的getter和setter
@Id
public int getId() { return this.id; }
public int setId(..) { .. }
是两件不同的事情。如果getter / setter中有一些处理,则此差异生效。
Q是否存在非关键字段的问题 - 那些没有@Id
注释的字段?
我的关键字段未经处理。但是,在其他方面,我有一些字段,我在设置之前验证/更改值。对于那些领域,我应该把注释放在他们的getter-setters之前吗?
据我所知,我没有撞到砖墙。但是 - 想确定一下。
TIA。
注意:看到了有用的讨论:Where to put hibernate annotations?。
答案 0 :(得分:0)
对于非关键字段没有问题,但我个人更喜欢字段注释,特别是如果您不必在实体级别上执行某些业务逻辑:代码更清晰,所有与数据库相关的东西都在类的开头,你没有使用equals方法的奇怪问题(它总是使用字段 - 它发生在我身上)另外,如果你有其他方法与数据库处理没有严格关系,你必须设置它们@Transient
。