Generate Model schema

Добрый день.

Вижу, что в диалоге Generate model теперь добавлено поле Schema.
image
Возможно ли указать другую схему для генерации?
СУБД MS SQL.

Добрый день, @sergeevms.

При настройке подключения к БД, вы можете указать параметр ‘currentSchema’ в поле “сonnection params”. Например ?currentSchema=custom

1 симпатия

Спасибо. Т.е. если я хочу использовать одну БД и две схемы, то мне нужно два подключения?

Да, для работы с двумя схемами нужно два подключения.

1 симпатия

@zlatoverov Александр, дошли руки опробовать.
Что-то не получается…

  1. Добавляю ?currentSchema=rprt в студии в Connection params. Закрываю. Открываю.
    Вижу следующую картину:
    image
    Т.е. имя схемы потеряно. Database type тоже изначально указан как MS 2012+

  2. В context.xml

    <Resource driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
              maxIdle="2"
              maxTotal="20"
              maxWaitMillis="5000"
              name="jdbc/reports"
              password="pass"
              type="javax.sql.DataSource"
              url="jdbc:sqlserver://server;databaseName=db?currentSchema=rprt"
              username="user"/>

При попытке постучаться em до этого источника:

stack
Cannot open database "db?currentSchema=rprt" requested by the login. The login failed. ClientConnectionId:e1ea8ac1-3239-4b8b-9c74-e6683c21a261
com.haulmont.cuba.core.global.RemoteException:
---


org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.3.2-cuba): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Cannot create PoolableConnectionFactory (Cannot open database "db?currentSchema=rprt" requested by the login. The login failed. ClientConnectionId:e1ea8ac1-3239-4b8b-9c74-e6683c21a261)
Error Code: 0

Вхожу под указанным пользователем с помощью management studio. Прекрасно выполняю select к этой таблице в бд.

  1. Тут я ошибся, в mssql в jdbc url параметры передаются не через ‘?’, а через ‘;’ , т.е. ‘;currentSchema=rprt’
    image
    По поводу, того что connection params после пере открытия исчез, это не правильно. Мы подумаем как облегчить ввод параметров и конкретно currentSchema. https://youtrack.cuba-platform.com/issue/STUDIO-6462
  2. Ошибки вытекают из того, что параметры в jdbc url заданы не правильно, через ‘?’ , а не через ‘;’
1 симпатия