【问题标题】:Removing quotes in openjpa generated sql for sybase删除openjpa为sybase生成的sql中的引号
【发布时间】:2012-08-28 23:05:46
【问题描述】:

我需要能够引用不同架构上的表,使用 OpenJPA 访问 Sybase 数据库。

所以,比如我需要选择如下:

SELECT name FROM SHARE.dbo.PROVINCE; 

但是,生成的 SQL 是:

SELECT name FROM "SHARE.dbo".PROVINCE; 

Sybase 拒绝。没有引号它工作正常。

我在课堂上使用以下注释:

@Entity
@Table(name="PROVINCE", schema="SHARE.dbo")

使用schema="SHARE" 不起作用,尽管它生成的sql 没有任何引号。 (Sybase 需要 schema.owner.table,所以SCHEMA.PROVINCES 是一个未知对象)

关于如何解决此问题的任何想法?

【问题讨论】:

    标签: java jakarta-ee jpa sybase openjpa


    【解决方案1】:

    尝试将模式连接到表名:@Table(name="SHARE.dbo.PROVINCE")

    【讨论】:

    • 由于某种原因,它切断了架构部分。当我执行 @Table(name="dbo.PROVINCE", schema="SHARE") 时也会发生同样的情况 - 架构部分,例如 SHARE,似乎消失了。
    【解决方案2】:

    这有点摸不着头脑,但您可以尝试禁用分隔标识符支持吗?

    openjpa.DBDictionary=sybase(SupportsDelimitedIdentifiers=false)
    

    【讨论】:

    • 这是一个远射,但值得一试。没有骰子,但谢谢。是时候说服 dba 给我更好的访问权限了,我猜 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 2012-10-21
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多