繁体   English   中英

Hibernate应该只更新数据库中的某些字段

[英]Hibernate should update only certain fields in the database

我有一个数据库触发器,它在插入数据时执行。 从应用程序端,我使用休眠模式更新数据库TRIGGER更新的同一表。 当我从应用程序端更新数据时,由Trigger更新的数据被较旧的数据覆盖。我发现休眠中的缓存值与数据库中的值不同步。 有解决这个问题的适当方法吗? 我正在谈论的缓存是一级缓存。

编辑-Hibernate应该更新数据库中的某些字段,而数据库中的其他字段应由TRIGGER更新。 这可能吗?

您可以使用刷新:

session.merge(entity);
session.flush();
//the trigger has been called
session.refresh(entity); 
//the entity will reflect the trigger changes

我的问题确实是问题编辑中提到的内容。 正如Vlad在评论中提到的,该问题的简单解决方案。 将列标记为@Column(name =“ dob”,insertable = false,可更新= false)。 如果休眠更新表,这有助于避免任何重大意外。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM