gpt4 book ai didi

带有投影的 hibernate 条件不会返回实现条件的实体

转载 作者:行者123 更新时间:2023-12-04 12:42:55 24 4
gpt4 key购买 nike

我正在使用 spring-hibernate 和 HibernateDAOSupport 类。
我有两个表以一对多的方式相互映射。
我正在实现以下标准

 DetachedCriteria criteria = getCriteria( "a" )
.setProjection( Projections.projectionList()
.add( Projections.groupProperty("a.id" ) )
.add( Projections.count( "a.id" ), "count" )
)
.createCriteria( "huApps", "hu")
.addOrder( Order.desc( "count" ) )
;

这很好用并创建以下查询
select
this_.id as y0_,
count(this_.id) as y1_
from
apps this_
inner join
huapps huapp1_
on this_.id=huapp1_.appid
group by
this_.id
order by
y1_ desc

结果,它返回一个列表 object[] .但我希望它应该返回 List<App> (应用程序是我实现/创建标准的类)。
我希望它会创建查询
select
this_
from
apps this_
inner join
huapps huapp1_
on this_.id=huapp1_.appid
group by
this_.id
order by
y1_ desc

请帮我写出正确的标准。
我也试过 sqlProjection()但即使这样也没有用。
有什么办法可以实现这一目标吗?

最佳答案

您尝试为功能 detachedCriteria.createCriteria("huApps", "hu") 的结果的新标准添加 orger .此函数返回 huApp 属性类的新标准。

尝试像这样替换您的标准:

DetachedCriteria detachedCriteria = DetachedCriteria.forClass(A.class);
detachedCriteria.setProjection(Projections.projectionList()
.add(Projections.groupProperty("id"))
.add(Projections.count("id"), "count")
);

detachedCriteria.createCriteria("huApps", "hu");
detachedCriteria.addOrder(Order.desc("count"));

List<A> list = detachedCriteria.getExecutableCriteria(getSession()).list();

这对我来说很有用。

关于带有投影的 hibernate 条件不会返回实现条件的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593302/

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