定义 JPA 行为以再次设置相同的值?

发布于 2024-08-22 07:44:09 字数 534 浏览 6 评论 0原文

我想知道,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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁对谁错谁最难过 2024-08-29 07:44:10

所以你将值设置为相同的值,所以它没有改变,那么为什么会发生任何事情呢? 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文