×

uniqueresult 一对 nat

uniqueresult(hibernate一对多查询的问题)

admin admin 发表于2024-06-13 20:56:56 浏览14 评论0

抢沙发发表评论

大家好,uniqueresult相信很多的网友都不是很明白,包括hibernate一对多查询的问题也是一样,不过没有关系,接下来就来为大家分享关于uniqueresult和hibernate一对多查询的问题的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

hibernate一对多查询的问题

Fetch:在我们查询Parent对象的时候,默认只有Parent的内容,并不包含childs的信息,如果在Parent.hbm.xml里设置lazy="false"的话才同时取出关联的所有childs内容.问题是我既想要hibernate默认的性能又想要临时的灵活性该怎么办? 这就是fetch的功能。我们可以把fetch与lazy="true"的关系类比为事务当中的编程式事务与声明式事务,不太准确,但是大概是这个意思。总值,fetch就是在代码这一层给你一个主动抓取得机会.Parent parent = (Parent)hibernateTemplate.execute(new HibernateCallback() {public Object doInHibernate(Session session) throws HibernateException, SQLException { Query q = session.createQuery("from Parent as parent "+" left outer join fetch parent.childs " +" where parent.id = :id" ); q.setParameter("id",new Long(15));return (Parent)q.uniqueResult(); } }); Assert.assertTrue(parent.getChilds().size() 》 0);你可以在lazy="true"的情况下把fetch去掉,就会报异常. 当然,如果lazy="false"就不需要fetch了

hibernate中hql查询时,int count=(Integer)query.uniqueResult();时报错了

  • 改为:long count=(Long)query.uniqueResult();

  • query.uniqueResult(); 返回的是Long型数据,只要做转换就行了!

  • int count=Integer.parse(query.uniqueResult());

关于本次uniqueresult和hibernate一对多查询的问题的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。