java如何配置Hibernate Envers以避免实体修订查询中的某些集合(联接表)
我使用的是HibernateEnvers 4.2
,我只想从实体中的一些集合获取实体的修订版,其中包含详细信息
但我可以看到,对实体中的所有集合启动hibernate查询会导致性能问题
也无法在此特定查询中避免对集合使用@NotAudited
注释,因为在其他场景中需要对这些集合进行审核
例如,如果我的审计实体将这两个连接作为集合。 但是我希望查询只获取地址信息而忽略订单信息,这可能吗?我不想用@NotAudited注释订单信息,因为在其他场景中可能需要历史信息
@ManyToOne
@JoinColumn(name="ADDR_ID")
public Address getAddress() { return address; }
@OneToMany
@JoinColumn(name="CUST_ID")
public Set<Order> getOrders() {return orders;}
# 1 楼答案
与this Hibernate documentation example一样,如果我有一个
Customer
与Address
关联:我使用this query查询修订:
Envers仅查询
Customers
,而不是Address
:除非您像这样浏览关联:
Hibernate Envers不应将它们包含在SQL修订查询中