作者的应用有多个数据源,两个pg和,一个mysql
如果应用第一个初始化的数据源是pg,那应用就会一直使用pg的dialect继续初始化之后的数据源
必须在mysql的数据源配置类中手动指定为mysql的dialect
网上大多数是在配置文件中指定
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
如果你的数据源都是同一类型,就不会有问题
private Map<String, Object> getVendorProperties() {
Map<String, Object> ret = jpaProperties.getHibernateProperties(new HibernateSettings());
ret.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
return ret;
}
/**
* 设置实体类所在位置
*/
@Bean(name = "entityManagerFactoryJeecms")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryJeecms(EntityManagerFactoryBuilder builder) {
return builder.dataSource(jeecmsDataSource).packages("com.zupu.core.jeecms.domain")
.persistenceUnit("jeecmsPersistenceUnit").properties(getVendorProperties()).build();
}