Eclipselink相当于hibernate.synonyms吗?

时间:2019-05-02 16:31:34

标签: java spring hibernate jpa eclipselink

我有一个Java应用程序,使用Oracle 12C作为数据库,并使用eclipselink 2.6.2作为jpa提供程序,部署在Weblogic 12.1.3上。我有两个oracle用户,一个包含模式(所有表,等等),一个只能访问该第一个模式的同义词。我需要能够与后者一起运行我的应用程序。

当前,当我尝试使用仅具有同义词访问权限的用户启动它时,出现错误,因为它尝试创建表,但随后说名称已经在使用中,然后尝试添加外键约束,并说该表不存在。

Error Code: 955
Call: CREATE TABLE....(I'm leaving out the create table statement)
Query: DataModifyQuery(sql="CREATE TABLE...(same as above)
[EL Warning]: 2019-05-02 09:03:06.868--ServerSession(460193317)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.2.v20151217-774c696): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing object

.
.
.
Error Code: 942
Call: ALTER TABLE mytable ADD CONSTRAINT ....
Query: DataModifyQuery(sql="ALTER TABLE ...
[EL Warning]: 2019-05-02 09:03:07.861--ServerSession(460193317)--Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.2.v20151217-774c696): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

请注意,如果我与拥有该架构的用户一起运行该应用程序,则该应用程序运行得很好,并且对于我来说,在persistenceContext.xml文件中将'generateDdl'设置为true。

我知道对于休眠状态,可以添加一些属性来使其工作:

spring.jpa.properties.hibernate.synonyms=true
spring.datasource.hikari.data-source-properties.includeSynonyms=true
(or spring.datasource.tomcat.connection-properties=includeSynonyms=true)

但是,我没有使用休眠模式。

我有一个custom-jdbc.xml文件,在其中尝试将以下内容添加到jdbc-driver-params属性部分,但这也不起作用。

<property>
    <name>includeSynonyms</name>
    <value>true</value>
</property>

是否可以使用eclipselink / weblogic做到这一点?如果可以,怎么办?

0 个答案:

没有答案