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 findCitiesByZimu() {
String hql = "SELECT new cn.project.vo.CitiesVo(c,substring(c.pinyin,1,1)) from Cities c order by pinyin";
List list = this.getHibernateTemplate().find(hql);
return list;
}

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

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

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


你可能感兴趣的:(j2ee)