相关疑难解决方法(0)

Hibernate:检查哪个实体的字段被修改

是)我有的:

我有Hibernate实体,它包含许多非瞬态字段,包​​括集合.用户可以单独更新每个字段或一次更新某些字段.

真是个挑战:

在处理程序中,我应该检查实体的哪个字段已被更改:

public void handle(Entity newVersion) {
  Session session = sessionFactory.openSession();
  Entity oldVersion = (Entity) session.get(Entity.class, entity.getId());
  List changedFields = compareChanges(oldVersion, newVersion);  //HOW TO CHECK WHICH FIELDS ARE CHANGED?
}
Run Code Online (Sandbox Code Playgroud)

出于安全性和通知原因,我想这样做.手段:

  1. 并非所有用户都可以修改所有字段
  2. 我应该在某些字段更改时以特定方式通知特定用户.

真是个问题:

我的代码非常难看.实际上我遍历所有字段/集合和调用equals方法.

题:

可能是Hibernate提供了更优雅的方式来检查哪些字段已被修改?怎么样?

PS

@victorantunes提供了一个解决方案,但对我来说似乎太全面了.可能是一些替代品?

java architecture design-patterns hibernate jpa

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

architecture ×1

design-patterns ×1

hibernate ×1

java ×1

jpa ×1