定义 JPA 行为以再次设置相同的值?
我想知道,JPA 是否对该行为有任何定义,如果您为任何属性设置等于值。我在规范中没有找到任何文字。
我已经使用 TopLink Essentials 和 Hibernate 进行了测试,如果我从数据库加载实体并再次将属性设置为相同的值,会发生什么情况。
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(length = 20)
private String value;
@Version
private long version;
// Define setter and getter...
}
设置相同的值
entity.setValue(new String(myChars));
不会更改版本值。
我可以期望每次实现都会出现这种行为吗?我不这么认为...
I wonder, if there is any definition by JPA for the behavior, if you setting equals value for any property. I didn't find any words in the specification.
I've tested with TopLink Essentials and Hibernate, what happens if I load a entity from database and set the property with same value again.
@Entity
public class MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(length = 20)
private String value;
@Version
private long version;
// Define setter and getter...
}
Setting the same value with
entity.setValue(new String(myChars));
does not change the version value.
Can I expect this behavior for every implementation. I don't think so...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
所以你将值设置为相同的值,所以它没有改变,那么为什么会发生任何事情呢? DataNucleus 不会改变任何东西......因为什么都没有改变。量子电动力学
So you set the value to the same thing, so it hasn't changed, so why should anything happen ? DataNucleus won't change anything ... since nothing has changed. QED