休眠条件如何排序父子关系的行数投影
问题描述:
嗨谁能帮我创建一个标准基于以下信息。 基本上这段代码将被添加到一个函数中,该函数返回发现的行数 大于10的子行数。值10将是动态的。休眠条件如何排序父子关系的行数投影
我一直坚持这个问题已经有一天了,需要一些帮助。
请注意,我无法控制数据库本身,因此我无法使用视图或更改数据库架构。此外,这是问题的简化版本,客户端和地图字段的其他属性被省略,预测和标准的创建将被重构为通用帮助方法。
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;
}
如何使用休眠条件来执行此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:...客户
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();
请任何人都提供关于如何做到这一点使用休眠条件的代码片段,如果你需要更多信息只是告诉我,我会尽力提供更多信息。
答
在from子句中选择不受条件支持。要么使用hql或sql - Firo
Doh!感谢您的信息...
任何人都有任何想法:( – 2012-02-03 00:21:29
在from子句中选择不受条件支持。要么使用hql或sql – Firo 2012-02-06 12:14:37