gpt4 book ai didi

java - 为什么创建 Hibernate 标准而不添加限制会影响我的结果?

转载 作者:行者123 更新时间:2023-12-01 11:27:17 26 4
gpt4 key购买 nike

我有一个类AttributeGroup,它与类Attribute 具有多对一关系。给定 AttributeGroup 名称或 Attribute 名称或两者,我想返回适当的数据连接。这是我的初始化代码:

Criteria criteria = HibernateUtil.getCurrentSession()
.createCriteria(AttributeGroup.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

一切都好。如果我通过调用 criteria.list() 返回该 List,我将获得数据库中的每个 AttributeGroup。奇怪的是,如果我接下来添加这一行:

Criteria attributesCriteria = criteria.createCriteria("attributes");

在这种情况下,将返回一个空的List。发生了什么?我的理解是,在添加 Restriction 之前,attributesCriteria 应该不会产生任何效果。接下来我想要做的是:

if (attribute != null) {
attributesCriteria.add(Restrictions.eq("name", attribute));
}

谢谢。

最佳答案

尝试此操作并向以下条件添加限制。

Criteria criteria = HibernateUtil.getCurrentSession()
.createCriteria(AttributeGroup.class)
.createCriteria("attributes").setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

createCriteria 和几乎所有 Criteria 方法都会修改调用它们的实例,并返回实例本身以进行方法调用。所以你可以像上面那样链接调用。

关于java - 为什么创建 Hibernate 标准而不添加限制会影响我的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com