开发者社区> 问答> 正文

求javaweb大神,关于Hibernate方面的问题,求戳入指导~ 400 请求报错 

我现在经常用到Hibernate的find和query查询,这两个查询都是可以根据hql语句进行复杂查询的,可是返回值始终是list,很郁闷,比如我根据一系列条件查某个对象,load和get都是根据主键查询,如果用find和query得到的就是一个list,我明知道结果只有一条所以又new了一个对象,再让这个对象等于list.get(0),感觉这样不太好,我想有没有直接可以根据hql语句查出一条对象直接返回?
然后如果我根据hql查询一个数字:“SELECT age FROM User u where u.username=+name;”
这就是查一个数字啊,但是用query和find的话这种语句会出错吗?不出错的话还是用list接吗?
刚刚学完SSH,很多东西不懂,求指导,谢谢各位前辈了。。。。

展开
收起
kun坤 2020-05-30 17:31:46 395 0
1 条回答
写回答
取消 提交回答
  • getSession().createQuery(hql).uniqueResult();
    ######你试一下不就行了,把结果打印出来试试不就好知道了######谢谢你了~ 那要是光查一个字段的内容呢?比如:SELECT age FROM Student;这个是查询全体学生的age,得到的应该是个List<Integer>吗?还有SELECT age FROM student WHERE id=?;这个很显然返回一个对象的age字段内容,怎么接收啊?###### public User getAge(String name){     String hpl=“select age from User where username=?";     Query query=sessionFactory.getCurrentSession().createQuery(hql);     query.setString(0,name);     return (User)query.uniqueResult(); } ######uniqueResult()这个慎用,这个只会返回唯一的一条记录,而且找不到的时候会报错的。######回复 @来自爪哇岛的程序猿 : 自己试试吧,我记得找不到或者找到多个时都会报错######找不到不是返回null吗?
    2020-05-30 17:31:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
如何利用Redisson分布式化传统Web项目 立即下载
Spring框架入门 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载

相关实验场景

更多