【问题标题】:Hibernate and database functions with packages带有包的休眠和数据库功能
【发布时间】:2017-08-14 16:06:39
【问题描述】:

我在 oracle 中调用了一个类似这样的函数:FOO.PACKAGE_NAME.function(param),使用 session.getNamedQuery("alias")... 可以正常工作。

现在我希望能够调用相同的函数,但在内部使用一些 Hibernate 功能将 FOO.PACKAGE_NAME.function(param) 更改为 PACKAGE_NAME.function(param)

有可能吗?

谢谢

【问题讨论】:

    标签: java database oracle hibernate function


    【解决方案1】:

    如果FOO 是数据库架构,那么您可以尝试像这样设置全局架构:

    <property name="hibernate.default_schema" value="FOO"/>
    

    您可以使用{h-schema} 占位符引用默认架构:

    @NamedNativeQuery(
        name = "my_query",
        query =
            "select {h-schema}PACKAGE_NAME.function( :param ) " +
            "from dual ",
        resultClass = MyResult.class
    )
    

    【讨论】:

    • 对于模式这将起作用,但如果我需要更改包名称?可能吗?我需要一些灵活性来更改它以运行我的测试。
    • Hibernate 没有 Oracle 函数包名称的表示法。因此,除非您想改变架构,否则您无能为力。
    • 好的...谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2012-08-15
    • 2020-12-16
    相关资源
    最近更新 更多