【发布时间】:2017-12-18 07:18:16
【问题描述】:
Hibernate、Hibernate Envers 和 QueryDSL 在 Spring boot 1.4.1.RELEASE 中配置并正常工作。
问题是当使用UpdateClause<JPAUpdateClause> updateQueryBuilder = queryFactory.update(collectionTransaction); 构建更新查询并执行该更新查询时,Hibernate Envers 不会提取和审核这些更改。
以下是实现 QueryDSL 的 Spring Data JPA 存储库
public class CollectionTransactionRepositoryImpl extends QueryDslRepositorySupport implements CollectionTransactionRepositoryCustom {
@Autowired
private JPAQueryFactory queryFactory;
public CollectionTransactionRepositoryImpl() {
super(CollectionTransaction.class);
}
@Override
public Collection<CollectionTransaction> updateCollectionTransaction(UpdateCollectionTransaction updateCollectionTransaction) {
QCollectionTransaction collectionTransaction = QCollectionTransaction.collectionTransaction;
UpdateClause<JPAUpdateClause> updateQueryBuilder = queryFactory.update(collectionTransaction);
.....//Code omitted for brevity
long updated = updateQueryBuilder.execute();
//.....
return ...
}
}
Hibernate Envers 是否可以在这种情况下做出改变?
【问题讨论】:
标签: spring hibernate spring-data-jpa querydsl hibernate-envers