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

Hibernate5.x中的自定义标量值函数

汤修贤
2023-03-14
    null
Query<Device> query = session.createQuery("Select ud from Device ud where fn_WorkDays(ua.created, current_date())>2",   Device.class);

在看了一些帖子之后,我明白了自定义函数在使用之前需要注册,因此创建了以下类:

public class MySQLServerDialect extends SQLServerDialect {
    public MySQLServerDialect() {
        super();
        registerFunction("fn_WorkDays", new VarArgsSQLFunction(StandardBasicTypes.INTEGER, "fn_WorkDays(", ",", ")"));
    }
}

更新了hibernate.cfg.xml,使用了:

<property name="dialect">com.test.service.utils.MySQLServerDialect</property>

我似乎不明白registerFunction应该如何操作,因为im收到以下错误:ERROR sqlexceptionhelper:142-'fn_workdays'不是可识别的函数名。

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <!-- Console Appender -->
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d{yyyy-MMM-dd HH:mm:ss a} [%t] %-5level %logger{36}:%L - %msg%n" />
        </Console>      
    </Appenders>

    <Loggers>
        <!-- Log everything in hibernate -->
        <Logger name="org.hibernate" level="debug" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>

        <!-- Log SQL statements -->
        <Logger name="org.hibernate.SQL" level="debug" additivity="false">
            <AppenderRef ref="Console" />           
        </Logger>

        <!-- Log JDBC bind parameters -->
        <Logger name="org.hibernate.type.descriptor.sql" level="trace" additivity="false">
            <AppenderRef ref="Console" />           
        </Logger>

        <!-- Log custom packages -->
        <Logger name="com.test.service" level="debug"   additivity="false">
            <AppenderRef ref="Console" />           
        </Logger>

        <Root level="error">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

任何帮助解决上述问题将非常感谢。

共有1个答案

廉宇
2023-03-14

错误SQLExCeptionHelper:142-“fn_workdays”不是可识别的函数名。

错误已经说明了什么是错误的,该函数在数据库中不存在。

试试看:

registerFunction("fn_WorkDays", new VarArgsSQLFunction(StandardBasicTypes.INTEGER, "dbo.fn_WorkDays(", ",", ")"));
 类似资料:
  • 本文向大家介绍Python3.x中自定义比较函数,包括了Python3.x中自定义比较函数的使用技巧和注意事项,需要的朋友参考一下 在Python3.x的世界里,cmp函数没有了。那么sorted,min,max等需要比较函数作为参数的函数该如何用呢? 以min函数的定义为例,有两种重载形式: 单参数(一个迭代器): 多参数(多个待比较内容): 本文主要讨论key=func参数的使用 。举例说明吧

  • 问题内容: 我们计划在应用程序中将Graphql用作后端服务器。我们选择Graphql- Java来开发POC。我们遇到了一种情况,以创建自己的标量类型来处理java.util.Map对象类型。 我们尚未找到任何有关创建自定义标量类型的文档。在下面的示例代码中 CustomScalar对象的实现是如何完成的。需要帮忙。 问题答案: 要大致了解如何制作标量,只需看一下现有的标量并做类似的事情即可。

  • 问题内容: 我正在尝试在mysql数据库中创建一列,该列自动递增1但从0-Z开始然后滚动。 例如000、001、002,…,009、00A,00B,…,00Z,010,…,0ZZ,…,100。 我想让数据库通过自动递增字段创建列。 我的想法是: 为从0到36的每个字符创建一列,然后将行N(其中N是最低有效数字)自动递增1。然后在每列上添加触发器,以在第N列达到36时向N-1列添加1 。 创建一个包

  • 我正在努力学习R,但我对它的工作方式有问题。我试图从头开始创建变量和的熵函数,但当我试图添加一些s以避免用0除法时出现时,我遇到了问题。 当我尝试使用plot的自定义熵时,它只是工作,但当我打印结果时,它会显示。但是当我尝试添加时,它会说: 控制台不带s: p=0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.1

  • 我做了这个自定义函数,并把它放在全局之外,这通常会工作。我也试着在主异步木偶函数中移动它,但也不起作用。这是一个简单的函数。在每个page evaluate函数中,我调用它并传递选择器。但是,它的说法没有定义和promise拒绝,这是奇怪的,因为函数不是promise....请帮助 我尝试将函数转换为异步函数,添加了一个新的参数页。然后,我将async添加到我的评估函数中,然后将puppeteer