У меня есть проблема с моим заявлением. Это приложение Spring Boot, где я создаю таблицы базы данных через Flyway. Для Flyway я создал пользователя БД, который обладает достаточными правами для создания таблиц БД.
Для приложения я хотел бы использовать другого пользователя БД (APP_DB_USER), который должен использоваться для вставки бизнес-данных.
Пока скрипт Flyway работает отлично, и таблицы создаются Я также предоставляю права на APP_DB_USER с помощью следующей команды. (Имя схемы и имя пользователя в моем примере совпадают)
GRANT ALL ON DB_USER.TABLE1 TO APP_DB_USER;
В SQL Разработчик я могу запускать операторы SELECT / INSERT с APP_DB_USER в таблицах DB_USER (например, DB_USER.TABLE1)
Моя проблема сейчас в приложении весенней загрузки. Я установил:
spring:
datasource:
url: DB_URL
username: APP_DB_USER
password: password
driver-class-name: oracle.jdbc.OracleDriver
initialization-mode: EMBEDDED
hikari:
connection-timeout: 20000
minimum-idle : 1
maximum-pool-size : 2
idle-timeout: 10000
max-lifetime: 1000
auto-commit: true
schema: DB_USER
Приложение запускается правильно, но как только я пытаюсь сохранить сущность, оно выдает мне сообщение об ошибке
java.sql.SQLSyntaxErrorException: ORA-00942: Table or View not found
Кроме того, я попробовал следующее свойство
jpa:
show-sql: true
properties:
hibernate:
default_schema: DB_USER
dialect: org.hibernate.dialect.Oracle12cDialect
Кто-нибудь есть идеи, что я делаю неправильно. Как я могу создать через Flyway с другими таблицами DB_User, которые затем могут быть использованы приложением через другой APP_DB_USER