Hibernate的hql查询加自定义字段

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的构造函数,自定义字段不用写别名,按顺序填好

自定义字段可以用各种函数,这样很好的扩展了基本查询,前端也能规范读取数据。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值