Sql 冬眠+;弹簧在范围内获得最大id
如何使用hibernate+spring获取具有最大id的对象。我只是需要适当的询问。这就是我尝试过的Sql 冬眠+;弹簧在范围内获得最大id,sql,spring,hibernate,jakarta-ee,hsqldb,Sql,Spring,Hibernate,Jakarta Ee,Hsqldb,如何使用hibernate+spring获取具有最大id的对象。我只是需要适当的询问。这就是我尝试过的 Student s = new Student(); DetachedCriteria maxId = DetachedCriteria maxId = DetachedCriteria.forClass(Student.class) .setProjection(Projections.max("id")); s = (Student) sessionFactor
Student s = new Student();
DetachedCriteria maxId = DetachedCriteria maxId = DetachedCriteria.forClass(Student.class)
.setProjection(Projections.max("id"));
s = (Student) sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.add(Restrictions.between("id", 30000, 40000))
.add(Property.forName("id").eq(maxId)).uniqueResult();
System.out.println(s.getId());
return s;
我还需要在范围内取得成绩,这是重要的条件。例如,我希望学生id在30000到40000之间。我怎样才能做到这一点
我也在玩这段代码
s = (Student) sessionFactory.getCurrentSession()
.createCriteria(Student.class).add(Restrictions.between("id", 30000,
40000)).uniqueResult();
只是要提到,结果不应该是一个列表,它应该是一个唯一的结果。像这样的东西怎么样
List<Student> results = sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.setProjection(Projections.max("id"))
.add(Restrictions.between("id", 30000, 40000)).list();
if (results != null && results.size() > 0) {
s = results.get(0);
}
else {
// not found
}
List results=sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.setProjection(Projections.max(“id”))
.add(limitions.between(“id”,30000,40000)).list();
if(results!=null&&results.size()>0){
s=结果。获取(0);
}
否则{
//找不到
}
像这样的东西怎么样
List<Student> results = sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.setProjection(Projections.max("id"))
.add(Restrictions.between("id", 30000, 40000)).list();
if (results != null && results.size() > 0) {
s = results.get(0);
}
else {
// not found
}
List results=sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.setProjection(Projections.max(“id”))
.add(limitions.between(“id”,30000,40000)).list();
if(results!=null&&results.size()>0){
s=结果。获取(0);
}
否则{
//找不到
}
这就是解决方案,我自己设法找到了:
int maxId = (Integer) sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.add(Restrictions.between("id", 30000, 40000))
.setProjection(Projections.max("id")).uniqueResult();
s.setId(maxId);
这就是解决方案,我自己设法解决了:
int maxId = (Integer) sessionFactory.getCurrentSession()
.createCriteria(Student.class)
.add(Restrictions.between("id", 30000, 40000))
.setProjection(Projections.max("id")).uniqueResult();
s.setId(maxId);
我还没有测试它,谢谢你的帮助,我已经解决了这个问题,你可以检查我对这个问题的答案。查询的代码是相同的,但我返回的是一个学生而不是一个int。注意uniqueResult,当查询返回多个结果时,这会引发异常。我没有测试它,感谢您的帮助,我已经解决了这个问题,您可以签出我对这个问题的答案。这与查询的代码相同,但我返回的是一个学生而不是一个int。请小心使用uniqueResult,当查询返回多个结果时,这将引发异常。