【发布时间】:2016-03-02 19:17:21
【问题描述】:
我是 ORM 的新手。是否有可能在 ORM 框架(比如说休眠)中,将对象(实体)映射到表并在内存中刷新和更新对象,因为表在上述对象-表关系之外被更新?所以内存中(缓存中)的对象总是反映表状态?
【问题讨论】:
我是 ORM 的新手。是否有可能在 ORM 框架(比如说休眠)中,将对象(实体)映射到表并在内存中刷新和更新对象,因为表在上述对象-表关系之外被更新?所以内存中(缓存中)的对象总是反映表状态?
【问题讨论】:
没有自动刷新机制,但是可以通过调用Session.flush手动刷新任意实体实例:
从底层数据库重新读取给定实例的状态。 不建议使用它来实现长时间运行的会话 跨越许多业务任务。然而,这种方法在某些情况下是有用的 特殊情况。例如
- 数据库触发器在插入或更新时更改对象状态
- 在同一会话中执行直接 SQL(例如大规模更新)后
- 插入 Blob 或 Clob 后
【讨论】: