繁体   English   中英

Hibernate从数据库获取项目的最新版本

[英]Hibernate get project last version from database

我是休眠框架的新手,我不知道如何使用休眠功能来编写代码以获取所需的对象。 在互联网上,我已经看到使用准则和投影的代码,但是对投影的查询不是我所需要的。 例如,我需要按日期获取项目的最新版本。 这是标准

Criteria criteria = session
                    .createCriteria(Assembly.class)
                    .setProjection(Projections.max("date"));

-第一个问题是它从所有表中获取最大值(不知道如何设置仅搜索确切的项目名称日期)。 第二个问题,它返回日期,但是我需要类的对象。 总之,我需要从休眠状态生成此类查询: SELECT * FROM assembly WHERE projectName = ? AND .. SELECT * FROM assembly WHERE projectName = ? AND ..不知道如何完成它, date = max() -按照我的理解将不起作用。 不好的解决方案之一是获取所有确切的项目,然后比较那里的日期,但是我认为会有好的解决方案。

这应该工作

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM