Динамический диалект с Hibernate и HikariJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Динамический диалект с Hibernate и Hikari

Сообщение Anonymous »


Я новичок в Hibernate. В моем коде соединение с БД управляется с помощью источника данных Hikari.

Мой код сейчас является мультитенантным, но он управляет одним и тем же диалектом спящего режима для всех арендаторов.

Можно ли создать конфигурацию, в которой каждый арендатор сможет использовать свой диалект? Тип диалекта может быть предоставлен в собственность арендатора.

Это примерentityManagerFactory:

@Bean public LocalContainerEntityManagerFactoryBeanentityManagerFactory() { Map jpaProperties = new HashMap(); jpaProperties.put(..., ...); jpaProperties.put(org.hibernate.cfg.Environment.DIALECT, "myDialect"); LocalContainerEntityManagerFactoryBean emfBean = новый LocalContainerEntityManagerFactoryBean (); emfBean.setPackagesToScan(new String[] {MyEntity.class.getPackage().getName()}); emfBean.setJpaVendorAdapter(новый HibernateJpaVendorAdapter()); emfBean.setJpaPropertyMap(jpaProperties); вернуть emfBean; } Изменить

Я искал это решение: оно предлагает создать дубликат LocalContainerEntityManagerFactoryBean для каждого диалекта. Чего я не понимаю, так это как я могу определить, когда используется один EntityManager (MySQL), а когда другой (Postgres или MsSQL): решение различает объекты (каждый объект имеет свою собственную БД), но в моем случае все объекты включены все БД. Является ли арендатор дискриминирующим?

Например: если я создаю второй экземпляр LocalContainerEntityManagerFactoryBean (т. е. msSQLEntityManagerFactory()) с установленным диалектом для SQL Server, приложение не запускается с:
Приложение не удалось запустить из-за исключения org.springframework.beans.factory.NoUniqueBeanDefinitionException: Нет подходящего bean-компонента типа javax.persistence.EntityManagerFactory: ожидался один соответствующий bean-компонент, но найдено 2: msSQLEntityManagerFactory,entityManagerFactory
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»