1
嗨誰能幫我創建一個標準基於以下信息。 基本上這段代碼將被添加到一個函數中,該函數返回發現的行數 大於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();
請任何人都提供關於如何做到這一點使用休眠條件的代碼片段,如果你需要更多信息只是告訴我,我會盡力提供更多信息。
任何人都有任何想法:( – 2012-02-03 00:21:29
在from子句中選擇不受條件支持。要麼使用hql或sql – Firo 2012-02-06 12:14:37