您的位置:首页 > 其它

Hibernate的hql查询加自定义字段

2017-04-21 11:28 211 查看
hibernate的hql查询,用getHibernateTemplate能满足一般的数据查询,但需要自定义字段的时候,无需另外写sql查询,可以用的是hql的select new的方法,配合VO类。

例子:

Entity实体类:

城市 [Cities]

|--id              (主键ID)

|--cityid        (城市编码)

|--city           (城市名)

|--proviceid (省编码)

|--pinyin         (拼音)

Vo类

城市+分类字母[CitiesVo]

|--cities (城市实体类)

|--zimu  (首字母)

public class CitiesVo{

private Cities cities;
private String zimu;

//务必要构造函数
public CitiesVo(Cities cities, String zimu) {
this.cities=cities;
this.zimu = zimu;
}

//包含getter ,setter 

}

Dao

@Override
public List<CitiesVo> findCitiesByZimu() {
String hql = "SELECT new cn.project.vo.CitiesVo(c,substring(c.pinyin,1,1)) from Cities c order by pinyin";
List<CitiesVo> list = this.getHibernateTemplate().find(hql);
return list;
}

关键这个select new 类路径 要详细路径,不然会找不到类

然后构造函数是VO的构造函数,自定义字段不用写别名,按顺序填好

自定义字段可以用各种函数,这样很好的扩展了基本查询,前端也能规范读取数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: