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的构造函数,自定义字段不用写别名,按顺序填好
自定义字段可以用各种函数,这样很好的扩展了基本查询,前端也能规范读取数据。
例子:
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的构造函数,自定义字段不用写别名,按顺序填好
自定义字段可以用各种函数,这样很好的扩展了基本查询,前端也能规范读取数据。
相关文章推荐
- Hibernate中用hql查询部分字段
- hibernate条件查询注入自定义Bean无需配置文件,取需要的字段
- Hibernate中HQL语句查询指定字段值报错:ClassCastException: [java.lang.Object; cannot be cast to bean.PersonStatic
- Hibernate HQL 查询POJO部分字段
- Hibernate hql 查询指定字段并获取结果集
- 关于Hibernate、NHibernate的 HQL 连接字段,字段拼接查询问题
- Hibernate中用hql查询部分字段
- hibernate使用createQuery(hql)语句仅查询部分字段,应如何获得数据
- Hibernate 之 hql 语句执行字段过滤查询
- hibernate 自定义字段查询映射为pojo对象的新思路
- hibernate条件查询注入自定义Bean无需配置文件,取需要的字段
- Hibernate hql 查询指定字段并获取结果集
- Hibernate hql 查询指定字段并获取结果集
- Hibernate中如何用HQL查询部分字段
- Hibernate中用hql查询部分字段
- Hibernate中用hql查询部分字段
- Hibernate中用hql查询部分字段 可解决异常java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- Hibernate 查询多个字段返回的list如何转为自定义对象
- hibernate hql 查询指定字段并获取结果集,多表查询结果集
- Hibernate hql 查询指定字段并获取结果集