【问题标题】:Hibernate envers - fetch latest data for non-audited and historical data for audited fieldsHibernate envers - 获取未审计的最新数据和审计字段的历史数据
【发布时间】:2014-12-14 01:48:21
【问题描述】:

我想知道是否有一种简单/标准的方式来查询 oneToMany 关系,其中拥有实体/父级没有被审计但子级被审计

个人 -

public class Person {
    @Id
    int id;

    @Column(name = "name")
    String name;

    @Audited
    @OneToMany(mappedBy = "person", orphanRemoval = true, cascade = { CascadeType.ALL })
    private List<Address> addresses = new ArrayList<>();
}

@Audited
public class Address {
    @Id
    int id;

    @Column(name = "country")
    String country;

    @Column(name = "city")
    String city;

    @ManyToOne
    @JoinColumn(name = "person_id")
    private Person person;
}

那么,如何在所有字段填充(已审核和未审核)的修订版中查询地址和人员列表

例如在上面的数据模型上,如果我做一个

auditReader.createQuery().
     forEntitiesAtRevision(Person.class, 2).getResultList().get(0);

我期待下面的结果

Person 1 -> 5, "Bob", [{1, "USA", "Seattle"},{2,"USA","Austin"}]

但是它的回归

Person 1 -> 5, null , [{1, "USA", "Seattle"},{2,"USA","Austin"}]

【问题讨论】:

    标签: java hibernate hibernate-envers


    【解决方案1】:

    如果字段未经审核,则不会填充它们。如果不存储数据,它们怎么可能呢? :)

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2013-01-05
      • 2015-12-14
      • 2011-07-07
      • 1970-01-01
      • 2015-01-10
      • 2018-09-19
      • 2012-08-10
      • 1970-01-01
      相关资源
      最近更新 更多