温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Hibernate中怎么实现属性查询

发布时间:2021-07-19 15:53:17 来源:亿速云 阅读:128 作者:Leah 栏目:编程语言

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中怎么实现属性查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI