Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠选择大于的最低值_Java_Hibernate - Fatal编程技术网

Java 休眠选择大于的最低值

Java 休眠选择大于的最低值,java,hibernate,Java,Hibernate,我试图让hibernate返回一个ID值最小且大于某个值的对象 我的代码返回的是一个整数,而不是对象 Criteria idQuery = session.createCriteria(Story.class); idQuery.add(Restrictions.ge("id", 2)); idQuery.setProjection(Projections.min("id")); int returnedId = criteria.uniqueResult(); Criteria storyQ

我试图让hibernate返回一个ID值最小且大于某个值的对象

我的代码返回的是一个整数,而不是对象

Criteria idQuery = session.createCriteria(Story.class);
idQuery.add(Restrictions.ge("id", 2));
idQuery.setProjection(Projections.min("id"));
int returnedId = criteria.uniqueResult();

Criteria storyQuery = session.createCriteria(Story.class);
storyQuery.add(Restrictions.idEq(returnedId);
Story story = (Story) storyQuery.uniqueResult();
return story;
代码

现在返回3作为一个整数。3是下一个可用的ID,但为什么hibernate会返回一个整数而不是对象


通过添加投影,您实际上是在要求Hibernate将查询从SELECT*from TABLE更改为SELECT MINID from TABLE查询。这是投影的特征之一

要实现实际想要实现的目标,需要使用投影来获取ID,然后使用另一个查询来检索对象

Criteria idQuery = session.createCriteria(Story.class);
idQuery.add(Restrictions.ge("id", 2));
idQuery.setProjection(Projections.min("id"));
int returnedId = criteria.uniqueResult();

Criteria storyQuery = session.createCriteria(Story.class);
storyQuery.add(Restrictions.idEq(returnedId);
Story story = (Story) storyQuery.uniqueResult();
return story;

因为你是在告诉它这么做。顺便说一句,整数是一个对象。谢谢Orid。我已经获取了返回的整数,并使用它从数据库中提取正确的故事对象。但似乎效率很低。