是否有人知道Hibernate的有效性Criteria.list()和Query.list()返回多次出现的同一实体的方法?
我偶尔会发现在使用Criteria API时,在我的类映射定义中更改默认提取策略(从"select"到"join")有时会影响对同一实体的多少引用可以出现在结果输出中list(),并且我我不确定是否将此视为一个错误.javadoc没有定义它,只是简单地说"匹配的查询结果列表".(多谢你们).
如果这是预期和正常的行为,那么我可以自己重复删除列表,这不是问题,但如果它是一个错误,那么我宁愿避免它,而不是重复删除结果并试图忽略它.
有人有这方面的经验吗?
Eem*_*ola 23
是的,如果您构建查询以便可能发生这种情况,则完全可以获得重复项.例如,参见Hibernate CollectionOfElements EAGER获取重复元素
我也开始注意到Java API中的这种行为,因为它开始增长.很高兴有一种简单的方法可以防止它.出于实践,我开始追加:
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
Run Code Online (Sandbox Code Playgroud)
至于我返回列表的所有条件.例如:
List<PaymentTypeAccountEntity> paymentTypeAccounts = criteria()
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18610 次 |
| 最近记录: |