У меня есть java-приложение, использующее Oracle 12C в качестве базы данных, и eclipselink 2.6.2 в качестве провайдера jpa, развернутое в Weblogic 12.1.3.У меня есть два пользователя оракула, один содержит схему (все таблицы и т. Д.), А другой имеет доступ только к синонимам этой первой схемы.Мне нужно иметь возможность запустить мое приложение с последним.
В настоящее время, когда я пытаюсь запустить его, используя пользователя с доступом только к синонимам, я получаю ошибки, потому что он пытается создать таблицы, но затем говорит, что имя уже используется, а затем пытается добавитьограничения внешнего ключа и говорит, что таблица не существует.
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
Обратите внимание, что приложение работает отлично, если я запускаю его с пользователем, которому принадлежит схема, и, для чего бы это ни стоило, у меня для «generateDdl» установлено значение true в моем файле persistenceContext.xml.
Я знаю, что для hibernate есть несколько свойств, которые можно добавить для этой работы:
spring.jpa.properties.hibernate.synonyms=true
spring.datasource.hikari.data-source-properties.includeSynonyms=true
(or spring.datasource.tomcat.connection-properties=includeSynonyms=true)
Однако я не использую hibernate.
У меня есть файл custom-jdbc.xml, в котором я попытался добавить следующее в раздел свойств jdbc-driver-params, но это тоже не работает.
<property>
<name>includeSynonyms</name>
<value>true</value>
</property>
Есть ли способ сделать это с помощью eclipselink / weblogic?И если да, то как?