在我的应用程序中,我在单例类中存储了一个包含 50 条记录的小表,因为该表中的数据几乎没有变化 - 例如国家名单。
虽然这个概念不好,但我现在必须继续。 Hibernate 中是否有任何解决方案可以观察表中的变化并在变化时调用类的方法来更新变量。
最佳答案
Hibernate 不会收到表级更改的通知。 (坏的)解决方案是通过 Hibernate 的 API 更新数据并使用 Interceptor 提供的回调之一。与 Singleton 一起做一些黑魔法巫术。但老实说,处理此问题的(正确)方法是摆脱该单例并将数据放入二级缓存(如果您手动更新表,则使缓存无效)。
(编辑:正如 ChssPly76 在评论中提到的,如果删除单例不是一个选项,则有一个中间解决方案,其中包括修改单例以查找并返回缓存的 hibernate 管理实体,例如您的国家/地区。)
关于java - 有没有办法通过 Hibernate 观察数据库表的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1722133/