В моем файле конфигурации Java Spring я использую AbstractRoutingDatasource успешно для переключения нескольких подключений баз данных.AbstractRoutingDatasource и hibernate.dialect с многократными источниками данных
public MyRoutingDataSource myRoutingDataSource() {
MyRoutingDataSource dataSource = new MyRoutingDataSource();
Map<Object, Object> targetDataSources = new HashMap<Object, Object>();
dataSource.setDefaultTargetDataSource(defaultDataSource());
dataSource.setTargetDataSources(targetDataSources);
return dataSource;
}
Но когда я хочу конкретных запросов SQL, который отличается от DataSources PostgreSQL/Oracle и т.д .. (как предел пагинация/rowNums), я должен, связанные с конкретной зимуют диалекте.
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(false);
vendorAdapter.setShowSql(true);
vendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQL81Dialect");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("fr.appli.model");
factory.setDataSource(myRoutingDataSource());
Мой вопрос, как я могу изменить зимуют диалект в моем EntityManager, когда я изменить источник данных из с AbstractRoutingDatasource? Можно ли это сделать программно?
Благодаря
Можете ли вы уточнить это? Вы решили проблему? Я изо всех сил стараюсь работать с разными диалектами, но не могу найти решение. – Mejmo