我的应用程序有一个实体Message
,它要么是“已读”,要么是“未读”。
客户可以要求提供已读或未读消息或两者兼而有之(以及其他条件)。我想要做的是将结果集的一些属性作为 JSON 对象返回,如果此结果集中有未读消息,则将它们标记为已读并将其状态保留到数据库。
简单地说,我们可以通过首先迭代结果集并提取所需的数据,然后重复相同的结果集并更新必要的消息来做到这一点。
但这是最佳方式吗?我们不能利用 sql 触发器或一些 hibernate 功能吗?
最佳答案
- 使用另一个更新语句更新记录。
- 创建用于获取数据的存储过程。
- JPA规范包含@PostLoad注释,您可以阅读here 。但我对此会非常小心,因为 hibernate 可以随时对 Message 实体发出负载(好吧,您团队中的其他人调用了负载,并且您的记录被搞砸了)。
关于java - Hibernate 将消息标记为 'read',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210534/