Hibernate中怎么实现属性查询

Hibernate中怎么实现属性查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

合山网站建设公司成都创新互联公司,合山网站设计制作,有大型网站制作公司丰富经验。已为合山数千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的合山做网站的公司定做!

  1. List list =session.createQuery
    ("select user.name,user.age from TUSER user").list();  

  2. Iterator it = list.iterator();  

  3. while(it.hasNext())  

  4. ...{  

  5. Object[] results = (Object[])it.next();  

  6. System.out.println(results[0]);  

  7. System.out.println(results[1]);  

如果觉得返回数组的方式不够符合面向对象的风格,也可以使用构造对象实例的方法对数组进行封装:

  1. List list = this.session.createQuery
    (" select new TUser(user.name,user.age) from TUser as user").list();  

  2. Iterator if = list.iterator();  

  3. while(it.hasNext())  

  4. ...{  

  5. TUser user = (TUser)it.next();  

  6. System.out.println(user.getName());  

着爱与那个就比较形象化一些,但是有一点要注意的是这个查询结果的TUser对象仅仅是一普通的 java 对象,进用于对查询结果的封装,除了在构造是赋予的属性值外,其他属性均为未赋值状态,这就意味着,我们无法通过 Session 对此对象进行更新,如果企图对 user 对象更新将导致向数据库插入一条新的记录,而不是更新原有记录:

while(it.hasNext())  ...{   TUser user = (TUser)it.next();  user.setName("test");  session.saveOrUpdate(user);  //这里将导致一次 insert 操作,而非 update  }

也可以使用像 SQL 那样的统计函数,比如:

selet count(*),min(user.age) from TUser as user  select upper(user.name) from TUser as user  select distinct user.name from TUser as user

关于Hibernate中怎么实现属性查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


网站题目:Hibernate中怎么实现属性查询
链接分享:http://myzitong.com/article/ggjcjc.html