[英]Hibernate get project last version from database
I'm new to hibernate framework and I don't know how to write code using hibernate functions to get needed object. 我是休眠框架的新手,我不知道如何使用休眠功能来编写代码以获取所需的对象。 In internet I have seen code using criteria and projection, but the query for projection is not what i need.
在互联网上,我已经看到使用准则和投影的代码,但是对投影的查询不是我所需要的。 For example i need to get last version of project by date.
例如,我需要按日期获取项目的最新版本。 This is criteria
这是标准
Criteria criteria = session
.createCriteria(Assembly.class)
.setProjection(Projections.max("date"));
-First problem is that it gets max value from all table(don't know how to set for searching only exact project name date). -第一个问题是它从所有表中获取最大值(不知道如何设置仅搜索确切的项目名称日期)。 -Second problem that it returns date but i need object of class.
第二个问题,它返回日期,但是我需要类的对象。 In summary i need from hibernate to generate such query:
SELECT * FROM assembly WHERE projectName = ? AND ..
总之,我需要从休眠状态生成此类查询:
SELECT * FROM assembly WHERE projectName = ? AND ..
SELECT * FROM assembly WHERE projectName = ? AND ..
.don't know how to finish it, date = max()
- won't work as I understand. SELECT * FROM assembly WHERE projectName = ? AND ..
不知道如何完成它, date = max()
-按照我的理解将不起作用。 One of the bad solution is to get all exact projects and then compare there dates, but I think there's gonna be good solution. 不好的解决方案之一是获取所有确切的项目,然后比较那里的日期,但是我认为会有好的解决方案。
This should work 这应该工作
Assembly newest =
(Assembly) session.createCriteria(Assembly.class)
.add(Restrictions.eq("projectName", projectName))
.addOrder(Order.desc("date"))
.setMaxResults(1)
.uniqueResult();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.