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

在hibernate@formula中使用自定义方言函数

谷梁宁
2023-03-14
public class CustomHSQLDialect extends HSQLDialect {

    public CustomHSQLDialect () {
        super();
        registerFunction("datediffsec", new SQLFunctionTemplate(
                StandardBasicTypes.DOUBLE, "cast((?1 - ?2) AS INTERVAL SECOND)"));
    }
}
hibernate.dialect=custom.dialect.CustomHSQLDialect 
@Formula("case status when 'ACTIVE' then datediffsec(now(), creationDateTime) when 'CLEARED' then datediffsec(clearedDateTime, creationDateTime) end")

共有1个答案

屠锦
2023-03-14

我不知道您是否可以在Hibernate中将此函数创建为SQL表达式。

但是如果可以,就HSQLDB而言,这个表达式是错误的。

正确的表达如下:

 (?1 - ?2) INTERVAL SECOND
 类似资料:
  • 问题内容: 我将Hibernate用作我们的对象关系映射,并为晦涩的数据库使用了自定义方言。 我从该数据库中检索的实体具有一列,因此: 数据库将此列定义为数字,精度为9,小数位数为3。 我可以看到Hibernate生成的用于检索数据的SQL,当我使用数据库查询工具执行相同的查询时,它为GROSS_WEIGHT列返回“ 9.68”。 但是,在由Hibernate检索的Entity中,“ grossW

  • 我使用Hibernate作为我们的对象关系映射,为一个模糊的数据库使用自定义方言。 我从这个数据库检索的实体有一个列,因此: 数据库将此列定义为数字,精度为9,刻度为3。 我可以看到Hibernate生成的检索数据的SQL,当我使用数据库查询工具执行相同的查询时,它会返回GROSS_WEIGHT列的9.68。 但是,在Hibernate检索到的实体中,“GrossWight”字段包含值“10”,其

  • 问题内容: 如果我要在数据库中定义某些功能(也许是Postgres或任何其他数据库): 我会从SQL中将其称为: 如何从Hibernate调用诸如此类的自定义函数? 问题答案: 如果要在HQL中使用自定义函数,则需要在相应的方言中定义它 看一下PostgreSQLDialect(或其他任何来源)的源代码,您会看到一堆registerFunction()调用。您需要再添加一个:-)-用于您自己的自定

  • 主要内容:操作整个数据表,操作行或列,操作单一元素如果想要应用自定义的函数,或者把其他库中的函数应用到 Pandas 对象中,有以下三种方法: 1) 操作整个 DataFrame 的函数:pipe() 2) 操作行或者列的函数:apply() 3) 操作单一元素的函数:applymap() 如何从上述函数中选择适合的函数,这取决于函数的操作对象。下面介绍了三种方法的使用。 操作整个数据表 通过给 pipe() 函数传递一个自定义函数和适当数量的参

  • 问题内容: 我在这里尝试了答案中的步骤:HibernateValidator,自定义ResourceBundleLocator和Spring 但是仍然只是作为输出而不是消息。 dispatcher-servlet.xml /WEB-INF/validationMessages.properties: 表格(上课地点) 这是怎么了 问题答案: 得到它了!:-) 我在我的计算机中添加了以下bean而不

  • 在使用EL自定义函数之前必须使用tablib指令引用EL自定义函数库。代码如下: <!-- customfun.jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8"%> <!-- 引用EL自定义函数库 --> <%@ taglib prefix="cfun" uri="http://www.sun.c