Hibernate中怎么实现属性查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
List list =session.createQuery
("select user.name,user.age from TUSER user").list();Iterator it = list.iterator();
while(it.hasNext())
...{
Object[] results = (Object[])it.next();
System.out.println(results[0]);
System.out.println(results[1]);
}
如果觉得返回数组的方式不够符合面向对象的风格,也可以使用构造对象实例的方法对数组进行封装:
List list = this.session.createQuery
(" select new TUser(user.name,user.age) from TUser as user").list();Iterator if = list.iterator();
while(it.hasNext())
...{
TUser user = (TUser)it.next();
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中怎么实现属性查询问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。