首页 > 其他分享 >hibernate 本地查询 字段别名 映射到 DTO时注意事项

hibernate 本地查询 字段别名 映射到 DTO时注意事项

时间:2023-02-19 22:37:59浏览次数:42  
标签:hibernate DTO 映射 gp addScalar pId 别名 pole poleId


本地原生SQL:

SELECT  pole.pId as poleId FROM lamppole pole LEFT JOIN grouppole gp ON pole.pId = gp.pId

 

Query:

Query q = getSession().createSQLQuery(sql2.toString()).addScalar("poleId")
.setResultTransformer(Transformers.aliasToBean(TestDto.class));

 

如果SQL有别名,那么,query就一定要加

addScalar("别名")

 

不然抛此异常:

could not read column value from result set column 'pId' not found

 

 


标签:hibernate,DTO,映射,gp,addScalar,pId,别名,pole,poleId
From: https://blog.51cto.com/u_21817/6066892

相关文章

  • Ubuntu rm -rf映射, 防止手误删除重要文件
    西北小农民于 2021-07-0510:42:30 发布197收藏版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。1.创建脚本rm.sh#!/......
  • Hibernate 随机获取100条记录
    Hibernate执行的话效率太低,我数据库才3000条左右,就用了5秒时间。建议用jdbc执行finder=newFinder("").append("FROMEvent21ORDERBYRA......
  • hibernate 把类输出成数据库表
      packagecom.hibernate.entity;importjava.io.Serializable;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id......
  • Hibernate annotation 一对多,多对一
     packagecom.hibernate.entity;importjava.io.Serializable;@EntitypublicclassTgroupimplementsSerializable{/****/privatestaticfinallongse......
  • Hibernate annotation 联合主键
    Hibernateannotation联合主键  packagecom.hibernate.entity;importjava.io.Serializable;importjavax.persistence.Entity;importjavax.persistence.GeneratedValu......
  • 用myeclipse的Hibernate 反向引擎 生成 数据库的 entity
    把Myeclipse转到DBBrowser 新建一个DatabaseConnectiondriver 然后找到要反向工程的表 右键->HibernateReverseEngineering然后,选好entity缩放的目录对CreatePO......
  • Hibernate 性能优化_1
    大概如此:不一定说在每个项目中都合适 1、比如,开了N多文件而没关,比如开了地址池而没清,比如分页读了N多页而没有清内存 2、对于ManyToOne,如果设为FetchType=Eager,则会产生1+......
  • Hibernate 的 join
    转的: 1.如果没有在Hibernate配置里做关联,在Hql里面是不能用join的。2.Hql里面的join是没有"ON"子句的。3.如果是innerjoin,Join的依据就是事先设计好关联4.如果要用......
  • Hibernate 性能优化_3
    二级缓存 对于二级缓存,其实并不一定要在项目中使用除非是对项目要求非常高的情况下使用 如果要用,应使用在:经常被访问,改动不大,数量不多,比如权限,比如组织机构 load()默认使......
  • Hibernate 性能优化_2
    createQuery("FROM****").list()和createQuery("FROM****").iterate()的区别 1、list()时,会取出所有的数据,Iterate()时,只取所有记录的主键,当用到哪条时,再根据id去取哪条......