Hibernate 休眠:分组方式
我试图用java+spring+hibernate+jasper报告打印一些按国家分组的城市列表,但在填充分组的城市列表时遇到了一些问题 我有以下疑问:Hibernate 休眠:分组方式,hibernate,hql,Hibernate,Hql,我试图用java+spring+hibernate+jasper报告打印一些按国家分组的城市列表,但在填充分组的城市列表时遇到了一些问题 我有以下疑问: Query query = session.createQuery("SELECT city FROM DictionaryCity city JOIN city.country as country GROUP BY country ORDER BY country.name ASC"); 它总是返回一个城市列表,但具有1x1连接,但Dic
Query query = session.createQuery("SELECT city FROM DictionaryCity city JOIN city.country as country GROUP BY country ORDER BY country.name ASC");
它总是返回一个城市列表,但具有1x1连接,但DictionaryCity
类定义如下:
@Entity
@Table(name = "dictionarycities")
public class DictionaryCity implements IDictionary {
/**
*
*/
private static final long serialVersionUID = 3638441397996216204L;
/**
*
*/
@Id
@Column(name = "Id")
@GeneratedValue
private Long id = null;
/**
*
*/
@Column(name = "Name")
private String name;
/**
*
*/
@ManyToOne(targetEntity = DictionaryCountry.class)
@JoinColumn(name = "CountryId")
private DictionaryCountry country; /** other... **/ }
怎么了?谢谢分组依据与返回分组在一起的类似行无关。当select子句使用聚合函数(如sum、min、max、count等)时,将使用它 例如,查询
select country.id, sum(city.id) from Country country left join country.cities city
返回每个国家以及该国家包含的城市数
如果您只想按国家划分城市组,orderby
就是您所需要的:
select city FROM DictionaryCity city JOIN city.country as country order by country.name ASC
将返回所有城市,您将首先找到阿塞拜疆的城市,然后是比利时的城市,然后是加拿大的城市,等等。生成的SQL是什么?