Я думаю, вы должны создать два сессионных факторных объекта для двух разных баз данных.
См. Здесь: Hibernate, конфигурирующий несколько источников данных и несколько фабрик сеансов
В качестве альтернативы , пожалуйста, посмотрите мой нижеприведенный sol и сообщите мне, если возникнут проблемы:
Вы можете использовать метод setHibernateProperties (java.util.Properties hibernateProperties) метода LocalSessionFactoryBean для изменения hibernate.dialect.
Вы внедрили бин hibernate сессионный завод через Spring. Так что все, что вам нужно сделать, это получить бин из контейнера Spring и изменить свойства гибернации. Ниже я добавил только диалект к фабрике сессий, но я рекомендую вам установить все необходимые свойства.
Приведенный ниже метод предназначен только для справки и понимания, при необходимости измените логику и параметры.
Вызовите метод ниже, если вы хотите изменить спящий диалект.
@Autowired
private LocalSessionFactoryBean sessionFactory;
//Change the logic and parameters as needed.
public void changedialect(String database) {
Properties prop=new Properties();
String dialect="org.hibernate.dialect.MySQLDialect";
if("postgresql".equals(database)) dialect="org.hibernate.dialect.PostgreSQLDialect";
prop.setProperty("hibernate.dialect", dialect);
sessionFactory.setHibernateProperties(prop);
}