【发布时间】:2017-12-11 14:52:07
【问题描述】:
每当有人“打开”设备时,我有一个表会更新(带有时间戳和 user_id)。此设备表也是包含 device_ids、device_names 等的“核心”表。我已使用 Spring 中的 @Transactional 标记方法,并且我将“设备”表标记为实体。
我希望当我更改实体时,由于方法被标记为事务,当方法关闭时,数据库将被更新。但这并不(总是)发生。我检查了服务器的日志,没有看到 SQL 异常。 catalina.out 看起来不错,MySQL 错误日志也是如此。这里可能是什么问题?我应该在此方法结束之前显式保存更新的实体吗?
【问题讨论】:
-
DeviceProfileentities会在你调用DeviceProfileRepository的save方法时被保存 -
@gtosto,好吧,出于好奇,为什么实体“有时”会更新,但不会一直失败? (另外,尝试保存
Device而不是DeviceProfile) -
你能把你的方法发给
getDevice()吗? -
可能在应用程序的另一部分刷新了休眠会话,或者保存了与
device相关的其他实体 -
@CrazySabbath 使用 getDevice() 方法更新
标签: java mysql spring hibernate