1
我想用Hibernate標準實現this。休眠:選擇N行,但在一列中只有唯一值
比方說,我有這樣(從鏈接)數據:
ID Name City Birthyear
1 Egon Spengler New York 1957
2 Mac Taylor New York 1955
3 Sarah Connor Los Angeles 1959
4 Jean-Luc Picard La Barre 2305
5 Ellen Ripley Nostromo 2092
6 James T. Kirk Riverside 2233
7 Henry Jones Chicago 1899
而且我想用Hibernate來實現這一點(從鏈接):
SELECT P.*, COUNT(*) AS ct
FROM people P
JOIN (SELECT MIN(Birthyear) AS Birthyear
FROM people
GROUP by City) P2 ON P2.Birthyear = P.Birthyear
GROUP BY P.City
ORDER BY P.Birthyear ASC
LIMIT 10;
如果我有一個實體:
@Entity
@Table(name = "people")
public class People {
@Id
private int id;
@Column
private String name;
@Column
private String city;
@Column
int birthyear;
}
然後我就能做出不自聯接部分的標準(這可能無法正常工作):
Criteria criteria = sessionFactory.getCurrentSession()
.createCriteria(People.class, "people")
.setProjection(Projections.projectionList()
.add(Projections.property("people.id"))
.add(Projections.property("people.name"))
.add(Projections.property("people.city"))
.add(Projections.groupProperty("people.city)))
.addOrder(Order.asc("people.birthyear"));
如何實現自連接部分?
不取笑,但你爲什麼不使用HQL因爲我要動態地添加更多的限制,它的更簡單 – 2012-02-01 05:26:51
。 HQL不好。不過,如果你以HQL的方式給我答案,我會很感激。 – 2012-02-01 05:46:15
@桑多,你好哥們..我想你現在可能已經得到了這個問題的答案。如果沒有,讓我知道,我會盡我所能。但我的另一個問題,根據此評論http://stackoverflow.com/posts/comments/51993306?noredirect=1,他說你寫的'AlianToBeanNestedResultTransformer'爲'一對多(又名集合)'的關係。如果所以,你能分享一下嗎?我爲'OneToMany'集合絕望的'AliasToBeanNestedResultTransformer' .. – 2015-08-17 16:06:12