【问题标题】:Criteria.DISTINCT_ROOT_ENTITY Equivalent in Hibernate 5 CriteriaQuery?Criteria.DISTINCT_ROOT_ENTITY 在 Hibernate 5 CriteriaQuery 中等效?
【发布时间】:2019-09-27 06:58:42
【问题描述】:

在 Hibernate 5 之前,可以使用 DISTINCT_ROOT_ENTITY 字段来确保每行结果都是根实体的不同实例。示例:

criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

但是在 Hibernate 5 CriteriaQuery 中不可能像这样使用它。有什么替代品吗?

现在我在 Hibernate 5 中使用 distinct() 方法:

criteriaQuery.distinct(true);

它是否提供相同的行为?如果不是,我应该使用什么?

【问题讨论】:

    标签: hibernate jpa-2.0 hibernate-criteria


    【解决方案1】:

    Hibernate 已弃用 setResultTransformer,但未提供其他方式 - 请参阅 https://discourse.hibernate.org/t/hibernate-resulttransformer-is-deprecated-what-to-use-instead/232/5

    因此,如果您需要使用setResultTransformer,则需要使用休眠Query,直到休眠提供替代。

    【讨论】:

    • 我不想使用 setResultTransformer。我只想要 DISTINCT_ROOT_ENTITY -> 的相同行为(确保每行结果都是根实体的不同实例)与条件查询。有可能吗?
    • @H.Ç.T 你有没有得到副本的例子?仅当存在连接的一对多表时才需要 DISTINCT_ROOT_ENTITY。
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 2019-04-15
    • 2019-03-31
    • 1970-01-01
    • 2014-10-21
    • 2021-04-24
    • 2020-08-24
    • 2021-09-15
    相关资源
    最近更新 更多