在Hibernate中,将@Id注释放在字段声明本身之前
@Id
private int id;在它的getter和setter之前
@Id
public int getId() { return this.id; }
public int setId(..) { .. }是两件不同的事情。如果在getter/setter中有一些处理,这种差异就会生效。
问题是,对于非键字段--那些没有@Id注释的字段--有这样的问题吗?
我的键字段没有任何处理。但是,在其他字段中,我有一些字段需要在设置之前验证/更改这些值。对于这些字段,我应该把注解放在它们的getters-setter之前吗?
据我所知,我没有撞到砖墙。但是--我想确认一下。
蒂娅。
注意:我看到了有用的讨论:Where to put hibernate annotations?。
发布于 2016-04-05 15:28:02
嗯,对于非键字段没有问题,但我个人更喜欢字段注释,特别是如果你不需要在实体级别做一些业务逻辑:代码更干净,所有与数据库相关的东西都在类的开头,你对equals方法没有奇怪的问题(它总是使用字段-这发生在我身上)另外,如果你有其他与数据库处理没有严格关系的方法,你必须将它们设置为@Transient。
https://stackoverflow.com/questions/36414510
复制相似问题