Rom*_*man 5 java hibernate jpa transient
我有一些哲学上的直觉,即添加未映射到DB的字段会破坏实体类,并且是解决问题的错误方法.
但是,是否存在使用@Transient字段导致隐式和硬性修复问题的具体情况?
例如,当@Transient我们的实体中有字段时,添加或删除二级缓存是否可能会破坏我们的应用程序?
相当大的更新:在对@Transient字段进行一些思考之后,在我看来,@Transient字段应该以正确的方式使用.
通过"正确的方式",我的意思是实体总是应该具有相同的行为.这意味着当getter null不时返回时,这是一个非常容易出错的行为,具体取决于@Transient字段值.这意味着应始终初始化@Transient字段.
我只看到2例正确使用:
@Transient字段应该在object的构造函数中初始化:
@Entity
public class SomeEntity
@Id
private long id;
@Transient
private String transientField;
public SomeEntity () {
transientField = "some string";
}
...
}
Run Code Online (Sandbox Code Playgroud)@Transient字段可以延迟初始化:
@Entity
public class SomeEntity
@Id
private long id;
@Transient
private String transientField;
public String getTransientField () {
synchronized (lock) {
if (transientField == null) {
transientField = "some string";
}
}
return transientField;
}
...
}
Run Code Online (Sandbox Code Playgroud)任何人都可以为这两起案件做准备或描述我错过的其他案件吗?
| 归档时间: |
|
| 查看次数: |
2416 次 |
| 最近记录: |