Java 删除openjpa为sybase生成的sql中的引号

Java 删除openjpa为sybase生成的sql中的引号,java,jakarta-ee,jpa,sybase,openjpa,Java,Jakarta Ee,Jpa,Sybase,Openjpa,我需要能够引用不同模式上的表,使用OpenJPA访问Sybase db 因此,例如,我需要选择如下: 从SHARE.dbo.PROVINCE中选择名称; 但是,生成的SQL是: 从“SHARE.dbo”中选择名称; 这是Sybase拒绝的。如果没有引号,它可以正常工作 我在类中使用以下注释: @实体 @表(name=“PROVINCE”,schema=“SHARE.dbo”) 使用schema=“SHARE”不起作用,尽管它生成的sql没有任何引号。(Sybase需要schema.owne

我需要能够引用不同模式上的表,使用OpenJPA访问Sybase db

因此,例如,我需要选择如下:

从SHARE.dbo.PROVINCE中选择名称;
但是,生成的SQL是:

从“SHARE.dbo”中选择名称;
这是Sybase拒绝的。如果没有引号,它可以正常工作

我在类中使用以下注释:

@实体
@表(name=“PROVINCE”,schema=“SHARE.dbo”)
使用
schema=“SHARE”
不起作用,尽管它生成的sql没有任何引号。(Sybase需要schema.owner.table,因此
schema.provides
是未知对象)


对如何解决这个问题有何想法

尝试将架构连接到表名:
@table(name=“SHARE.dbo.PROVINCE”)
这有点像瞎猜,但您可以尝试禁用分隔标识符支持吗

openjpa.DBDictionary=sybase(SupportsDelimitedIdentifiers=false)

出于某种原因,它切断了模式部分。当我使用@Table(name=“dbo.PROVINCE”,schema=“SHARE”)时也会发生同样的情况——模式部分,例如SHARE,似乎消失了。这是一个很长的过程,但值得一试。没有骰子,但是谢谢。是时候说服dba给我更好的访问权限了,我想:)