hibernate 原生sql返回结果执行AddEntity方法
2014-08-21 16:58
323 查看
参看博文:http://blog.csdn.net/forandever/article/details/4520787
http://blog.csdn.net/yangfanend/article/details/7165086
总结:
1、使用Hibernate 原生SQL查询,当多个表的关联时,或者返回多个表的字段时,最好要添加别名,并注意添加的别名的写法;
3、当多个表格关联使用原生SQL查询时,记得对每个要返回的实体 addEntity。
执行addEntity, 原生sql必须用select distinct main.*, task.*,link.* from
complaintmain main, complainttask task, complaintlink link的形式,或者select {main.*},{task.*} from complaintmain
main, complainttask task, complaintlink link。
返回几个表.*,添加几个与之对应的对象实体。
1.如果查询的结果task.*和对象字段名称没有一一对应,则需要需要起别名,然后通过addEntity("别名",对象实体.class),通过addEntity把要返回的数据强转为配置hibernate映射的对象实体。
main.id
as {main.id},这是为了如果数据库字段名和complaintmain 模型中不一样所以都as取了个别名,那么这样就能返回complaintmain 对象了。
http://blog.csdn.net/yangfanend/article/details/7165086
总结:
1、使用Hibernate 原生SQL查询,当多个表的关联时,或者返回多个表的字段时,最好要添加别名,并注意添加的别名的写法;
3、当多个表格关联使用原生SQL查询时,记得对每个要返回的实体 addEntity。
4、如果要执行的sql语句是多表查询,并且是返回一个对象。这个对象是配置hibernate映射的。
执行addEntity, 原生sql必须用select distinct main.*, task.*,link.* fromcomplaintmain main, complainttask task, complaintlink link的形式,或者select {main.*},{task.*} from complaintmain
main, complainttask task, complaintlink link。
返回几个表.*,添加几个与之对应的对象实体。
1.如果查询的结果task.*和对象字段名称没有一一对应,则需要需要起别名,然后通过addEntity("别名",对象实体.class),通过addEntity把要返回的数据强转为配置hibernate映射的对象实体。
main.id
as {main.id},这是为了如果数据库字段名和complaintmain 模型中不一样所以都as取了个别名,那么这样就能返回complaintmain 对象了。
1、hibernate 中createQuery与createSQLQuery两者区别是:
前者用的hql语句进行查询,后者可以用sql语句查询
前者以hibernate生成的Bean为对象装入list返回,后者则是以对象数组进行存储
所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便
突然发现createSQLQuery有这样一个方法可以直接转换对象
Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);
XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。但是这个bean必须有映射
呵呵以后多注意,还是时不时的要看看hibernate各个对象方法的使用。
相关文章推荐
- hibernate 原生sql返回结果执行AddEntity方法
- hibernate 原生sql返回结果执行AddEntity方法
- Hibernate执行原生SQL返回List<Map>类型结果集
- Hibernate执行原生SQL返回List<Map>类型结果集
- Hibernate3.2.6 原生sql 查询使用方法,将查询结果直接转换为POJO,不必非要指定属性大写
- Hibernate原生sql查询返回结果问题
- Hibernate createSQLQuery list 返回结果转成Map的方法
- druid 执行SQL出现错误但不影响返回结果的解决方法
- Hibernate Native SQL查询常用的2种方法及对返回结果处理
- Hibernate使用原生sql返回Map类型结果集的方法
- hibernate,执行原生SQL并将结果转换为Map
- Hibernate执行原生sql将查询结果直接转为VO
- hibernate执行原生Sql语句的方法(转)
- hibernate 执行原生sql,select返回string,long
- hibernate 执行原生sql 返回实体list对象
- 使用PreparedStatement的execute方法执行sql插入语句,执行成功,但是返回结果却为false
- java---j2ee---hibernate执行原生Sql语句的方法
- Hibernate中执行SQL语句的方法(转)
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法