【问题标题】:Hibernate Dialects + datediff functionHibernate 方言 + datediff 函数
【发布时间】:2011-06-04 03:45:24
【问题描述】:

我有个问题,mysql中datediff的语法和hsqldb不同:

mysql: datediff(date1,date2)
hsqldb: datediff(interval,date1,date2)

hibernate 中的方言通常可以解决这些问题,但是我似乎无法找到为 hibernate 创建 datediff 限制的方法。这是一个真正的麻烦,因为它阻止我使用内存中的 hsql 数据库进行单元测试,因为我必须在 sql 语句中“硬编码” datediff 的格式。

如果有人对此问题有任何建议,将不胜感激。

【问题讨论】:

    标签: java sql hibernate orm datediff


    【解决方案1】:

    我想说最简单的解决方案是创建自己的自定义 HSQLDB 方言,扩展现有的 HSQLDB 方言。然后,在构造函数中,注册一个函数来处理要转换为 datediff(interval, date1, date2) 的 datediff(date1, date2),前提是间隔是静态值。像这样的:

    registerFunction( "datediff", new SQLFunctionTemplate( StandardBasicTypes.INTEGER, "datediff(interval, ?1, ?2)" ) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2021-11-15
      相关资源
      最近更新 更多