java - 有没有办法通过 Hibernate 观察数据库表的变化?

标签 java database hibernate orm

在我的应用程序中,我在单例类中存储了一个包含 50 条记录的小表,因为该表中的数据几乎没有变化 - 例如国家名单。

虽然这个概念不好,但我现在必须继续。 Hibernate 中是否有任何解决方案可以观察表中的变化并在变化时调用类的方法来更新变量。

最佳答案

Hibernate 不会收到表级更改的通知。 (坏的)解决方案是通过 Hibernate 的 API 更新数据并使用 Interceptor 提供的回调之一。与 Singleton 一起做一些黑魔法巫术。但老实说,处理此问题的(正确)方法是摆脱该单例并将数据放入二级缓存(如果您手动更新表,则使缓存无效)。

(编辑:正如 ChssPly76 在评论中提到的,如果删除单例不是一个选项,则有一个中间解决方案,其中包括修改单例以查找并返回缓存的 hibernate 管理实体,例如您的国家/地区。)

关于java - 有没有办法通过 Hibernate 观察数据库表的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722133/

相关文章:

java - 如何仅在运行时从类路径嵌入 keystore 证书?

sql - 在sql中执行排序操作后获取行的偏移量

java - JPA 以及与持久性提供程序和数据库供应商的兼容性

Travis CI 和 Windows 笔记本电脑上本地运行的 JAVA 程序输出差异

java - 什么是 JSON 提供程序以及有哪些不同类型的提供程序?

sql - 一对一关系的数据库设计

java - 如何在hibernate中对composite-id键属性应用过滤器

java - Hibernate可以用一个bean更新两个表吗?

java - 使用 View 绑定(bind)膨胀类 ImageView 时出错

database - 如何更改特定于一个 SID 的 Oracle 数据库中的时区,系统配置了许多 DB SID