当前位置: 首页 > 知识库问答 >
问题:

使用Hibernate条件选择与日期不同的年份

芮祺
2023-03-14

我希望使用Hibernate Criteria API从MySQL日期字段中获取所有不同的年份。这是我要转换为条件的查询:

sess.createQuery("SELECT DISTINCT year(o.date) FROM Observation");

我试过:

Criteria crit = sess.createCriteria(Observation.class)
    .setProjection(Projections.distinct(Projections.property("year(date)")));

但它返回一个错误

错误-无法解析属性:年(日期):ca.ogsl.biodity.hibernate.Observation

有人知道这是否可能,以及如何做到吗?

谢谢!!!

基文

共有1个答案

曾明诚
2023-03-14

尝试使用sql投影,以便可以使用任何sql表达式:

criteria.setProjection(Projections.sqlProjection( "yeard(DATE_COLUMN_NAME) as year", new String[] {"year"}, new Type[] {StandardBasicTypes.INTEGER} ));  
 类似资料:
  • 问题内容: 使用Hibernate的条件,我想执行以下操作: 我认为执行以下操作将产生想要的结果: 但是,这实际上是执行类似以下操作: 显然,这引发了错误。 除了不使用条件以外,还有解决方案吗? 谢谢, 布兰登 问题答案:

  • 我试图根据类模板参数确定调用成员函数的哪个版本。我试过: 我认为这是说“如果T是int,则使用第一个MyFunction,如果T不是int,则使用第二个MyFunction,但我收到编译器错误说“错误:在'结构std::enable_if'中没有名为'type'的类型”。有人能指出我在这里做错了什么吗?

  • 我正在使用Hibernate标准API并使用投影获得如下所示的结果: 输出: 这段代码按预期工作,但我想在唯一日期记录的基础上运行distinct函数,这意味着distinct函数不应该考虑时间值,而应该只考虑日期值。所以out put应该是这样的: 知道怎么做吗?

  • 我正在创建一个Java Fx应用程序使用场景构建器。我有两个日期选择器Date1和date2。我需要计算日期1和日期2之间的天数,不包括任何周日。我找过各种各样的答案,但没有一个能迎合我的。 非常感谢任何帮助。

  • 问题内容: 使用Python … 如何选择一年中的所有星期日(或与此相关的任何一天)? 这些日期代表2010年的星期日。我想这也可能适用于一周中的任何一天。 问题答案: 您可以使用该模块查找一年中的第一个星期日,然后继续添加7天,生成新的星期日:

  • 问题内容: 我有一个“事件日历”表,我想选择日期等于或大于今天的事件。当我使用以下SELECT语句时,它仅在将来检索事件(> NOW()): 我将如何选择今天或将来的所有事件? 谢谢 问题答案: 您正在寻找: 或者: