gpt4 book ai didi

java - Hibernate Criteria如何对父子关系上的行计数投影进行排序

转载 作者:行者123 更新时间:2023-12-01 05:30:10 25 4
gpt4 key购买 nike

嗨,任何人都可以帮我根据以下信息创建一个标准吗?基本上,这段代码将被添加到一个函数中,该函数返回找到的行数子行数大于 10。值 10 将是动态的。

我已经被这个问题困扰一天了,需要一些帮助。

请注意,我无法控制数据库本身,因此无法使用 View 或更改数据库架构。此外,这是问题的简化版本,省略了客户端和 map 字段的其他属性,并且投影和标准的创建将被重构为通用帮助器方法。

public class client
{
private int id;
private string code;
@OneToMany(fetch=FetchType.Lazy)
@JoinColumn(name="code", nullable=true)
private List <MapFields> mapFields;
}

public class MapFields
{
private int id;
private string code;
}

如何使用 hibernate 标准执行此 sql 查询。

SELECT COUNT(*)
FROM
(
SELECT MapFields.code
FROM Client LEFT JOIN MAPFields on Client.code
GROUP BY MapFields.code
HAVING COUNT(MapField.code) > 10
) AS A

我已经尝试过以下方法,但没有成功。我不断遇到异常,告诉我无法解析属性。

org.hibernate.QueryException:无法解析属性:numberOfMapFields of:...Client

Criteria criteria = getCurrentSession().createCriteria(Client.class)

criteria.createAlias("mapFields", "mapFields", CriteriaSpecification.Left_Join)

ProjectionList pl = Projections.projectionList();

pl.add(Projections.count("mapFields.code", "numberOfMapFields"));

pl.add(Projections.rowCount());

criteria.setProjection(projectionList);

criteria.add(Restriction.ge("numberOfMapFields", "10"))

criteria.list();

请任何人提供有关如何使用 hibernate 标准执行此操作的代码片段,如果您需要更多信息,请告诉我,我会尽力提供更多信息。

最佳答案

selects in the from clause are not supported by criteria. either use hql or sql - Firo

哦!感谢您提供的信息...

关于java - Hibernate Criteria如何对父子关系上的行计数投影进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106291/

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