【问题标题】:Can I use saveOrUpdate method with DynamicUpdate annotation?我可以将 saveOrUpdate 方法与 DynamicUpdate 注释一起使用吗?
【发布时间】:2015-08-20 06:09:34
【问题描述】:

您好,我是 Hibernate 的新手。

我可以在实体类上使用saveOrUpdate 方法和DynamicUpdate 注释吗?

谁能向我解释我什么时候应该使用saveOrUpdatesaveupdate 方法?或者有什么优点和缺点?

【问题讨论】:

  • 当前形式的问题过于宽泛。将其缩小到您面临的具体问题。

标签: java database hibernate orm hibernate-mapping


【解决方案1】:

DynamicUpdate 用于让 UPDATE 语句仅包含已更改的列,而不是所有实体列。

如果实体已经与当前会话相关联(例如使用Session.get()Session.load() 加载它时),dirty checking mechanism 将自动检测到任何更改并在flush time 上发出更新。

save 用于将实体状态从 TRANSIENT 更改为 PERSISTED,并且仅在您将新对象保存到数据库中时才有用。

“更新”方法用于重新关联分离的实体。

saveOrUpdate 结合了这两种方法,但同样,这仅适用于相关实体尚未与当前会话关联的情况。该方法使实体被管理,以便 Hibernate 可以自动将实体与关联的数据库行同步。

【讨论】:

    猜你喜欢
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2018-11-05
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多