Java 如何在JPA实体类表名中向表名附加双引号?
我在OracleDB的模式“MYSCHEMA”下有一个表“test”Java 如何在JPA实体类表名中向表名附加双引号?,java,mysql,oracle,jpa,Java,Mysql,Oracle,Jpa,我在OracleDB的模式“MYSCHEMA”下有一个表“test” select*from MYSCHEMA.“test”工作正常,但select*from MYSCHEMA.test会给出一个错误: 表或视图不存在 我试图使用JPA查询(JavaSpring应用程序)从这个表中获取数据 即使在表名周围使用双引号,JPA查询也会出现“表或视图不存在”错误。如何解决 我不应该编辑/重命名表名,因为表/db已经链接到一些现有的应用程序 你试过吗 @Entity @Table(name = "tes
select*from MYSCHEMA.“test”工作正常,但select*from MYSCHEMA.test
会给出一个错误:
表或视图不存在
我试图使用JPA查询(JavaSpring应用程序)从这个表中获取数据
即使在表名周围使用双引号,JPA查询也会出现“表或视图不存在”错误。如何解决
我不应该编辑/重命名表名,因为表/db已经链接到一些现有的应用程序 你试过吗
@Entity
@Table(name = "test", schema = "MYSCHEMA")
public Class MyClass {
}
表名周围只有一个单引号jpa提供了另一种引用表名的方法,它添加了` to,直到不转义双引号为止
@Entity
@Table(name = "`test`", schema = "MYSCHEMA")
public Class MyClass {
}
谢谢你的回复Nilesh Jadav。我尝试过在表名周围添加单引号,也尝试过不在表名中添加任何内容。它也给出了同样的错误。请阅读第8点和第9点,可能会对您有所帮助!一些JPA提供商(例如DataNucleus)会为您这样做,而另一些则坚持认为您必须自己处理。哪个JPA提供商是您的?它的EclipseLink Neil Stockton您可以在
持久化单元默认值中使用分隔标识符
元素。当然,这将影响所有其他标识符,并可能导致其他问题。。。。
@Entity
@Table(name = "`test`", schema = "MYSCHEMA")
public Class MyClass {
}