Java Spring jpa-can';不要使用多个EntityManagerFactory
我正在开发一个JavaSpringMVC应用程序,它使用hibernate和jpa作为持久层。我有2个数据库,我想映射数据库1中的一些实体表和数据库2中的一些实体表。因此,我定义了如下两个配置类: 第一名:Java Spring jpa-can';不要使用多个EntityManagerFactory,java,hibernate,spring-mvc,jpa,entitymanager,Java,Hibernate,Spring Mvc,Jpa,Entitymanager,我正在开发一个JavaSpringMVC应用程序,它使用hibernate和jpa作为持久层。我有2个数据库,我想映射数据库1中的一些实体表和数据库2中的一些实体表。因此,我定义了如下两个配置类: 第一名: @Configuration @EnableTransactionManagement @EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFact
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
秒:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
注意,这两个文件中的所有内容都相似,只是第二个文件中的common
已转换为profile
,数据库名称和ip已更改。在DAO中,我还提出了以下内容:
@PersistenceContext(unitName = "common") //or "profile"
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
现在,当我运行项目时,我得到以下异常:
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined: expected single matching bean but found 2: commonEntityManagerFactory,profileEntityManagerFactory
我已经在这个例外中呆了两天了。谁能帮我解决这个问题。谢谢您的时间。不确定它是否对您有帮助,但请尝试将
commonEntityManagerFactory()
和profileEntityManagerFactory()
的返回值从EntityManagerFactory
更改为LocalContainerEntityManagerFactoryBean
,并返回这些工厂实例,而不是factory.getObject()
。这是我目前项目中的一些东西,它工作得很好
另一个猜测:您使用哪个Spring框架版本?问题是,最近Spring框架中出现了一个与您的问题相关的回归。看一看,举个例子。回归系数为4.1.4。如果您确信您的配置是正确的,请尝试使用不同的Spring版本。希望这有帮助不确定它是否对您有帮助,但请尝试将
commonEntityManagerFactory()
和profileEntityManagerFactory()
的返回值从EntityManagerFactory
更改为LocalContainerEntityManagerFactoryBean
,并返回这些工厂实例,而不是factory.getObject()
。这是我目前项目中的一些东西,它工作得很好
另一个猜测:您使用哪个Spring框架版本?问题是,最近Spring框架中出现了一个与您的问题相关的回归。看一看,举个例子。回归系数为4.1.4。如果您确信您的配置是正确的,请尝试使用不同的Spring版本。希望这对您有所帮助您没有将
“common”
定义为一个单元名,并且您有两个@Primary
注释。
尝试配置:
@Bean(name=“common”)
而不是@Bean(name=“commonEntityManagerFactory”)
您没有将“common”
定义为一个unitName,并且您有两个@Primary
注释。
尝试配置:
@Bean(name=“common”)
而不是@Bean(name=“commonEntityManagerFactory”)
因为它是Spring Jpa配置,所以您可能需要这样做:
第一名:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
秒:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
注射示例:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
由于是Spring Jpa配置,您可能需要这样做: 第一名:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
秒:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
注射示例:
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("common");
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setPersistenceUnitName("profile");
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.common",entityManagerFactoryRef = "commonEntityManagerFactory",transactionManagerRef = "commonTransactionManager")
public class PersistenceConfigCommon {
public PersistenceConfigCommon() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "commonEntityManagerFactory")
@Qualifier(value="commonEntityManager")
public EntityManagerFactory commonEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(commonDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "commonDataSource")
public DataSource commonDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.11:3306/database1?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "commonTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(value = "com.mycompany.project.persistence.orm.module.profile",entityManagerFactoryRef = "profileEntityManagerFactory",transactionManagerRef = "profileTransactionManager")
public class PersistenceConfigProfile {
public PersistenceConfigProfile() {
}
Properties additionalProperties() {
return new Properties() {
{
setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
setProperty("hibernate.hbm2ddl.auto", "update");
setProperty("hibernate.show_sql", "true");
setProperty("hibernate.enable_lazy_load_no_trans", "true");
setProperty("hibernate.connection.CharSet", "utf8");
setProperty("hibernate.connection.characterEncoding", "utf8");
setProperty("hibernate.connection.useUnicode", "true");
}
};
}
@Primary
@Bean(name = "profileEntityManagerFactory")
@Qualifier(value="profileEntityManager")
public EntityManagerFactory profileEntityManagerFactory() {entityManagerFactoryBean");
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(profileDataSource());
factory.setPackagesToScan("com.mycompany.project.persistence.orm.module");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(Boolean.TRUE);
vendorAdapter.setShowSql(Boolean.TRUE);
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(additionalProperties());
factory.afterPropertiesSet();
return factory.getObject();
}
@Primary
@Bean(name = "profileDataSource")
public DataSource profileDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://10.10.1.63:3306/database2?characterEncoding=UTF-8");
dataSource.setUsername("fpuser");
dataSource.setPassword("fpdb$123456");
return dataSource;
}
@Primary
@Bean(name = "profileTransactionManager")
public PlatformTransactionManager commonTransactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(commonEntityManagerFactory());
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
}
@Autowired
@Qualifier(value="profileEntityManager")
protected EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
持久性单元名称通过
factory.setPersistenceUnitName(“profile”)
My bad;)显式指定。但您仍然将两个EntityManagerFactory定义为自动布线的默认候选对象。正如我所说的,这可能会让spring感到困惑。根据@Primary:的文档,当多个候选者有资格自动关联一个单值依赖项时,应该优先考虑bean。如果候选对象中只存在一个“主”bean,则它将是自动连接的值。
持久性单元名称通过factory.setPersistenceUnitName(“profile”)
My bad;)显式指定。但您仍然将两个EntityManagerFactory定义为自动布线的默认候选对象。正如我所说的,这可能会让spring感到困惑。根据@Primary:的文档,当多个候选者有资格自动关联一个单值依赖项时,应该优先考虑bean。如果候选者中只存在一个“主要”bean,它将是自动连接的值。
我测试了您的建议,但仍然存在相同的异常:(@hamed我用另一个猜测更新了我的答案,希望有帮助。我正在使用spring 4.0.1。升级到4.1.1可能会解决我的问题吗?我不确定,你应该试试。如果你编辑你的问题并添加更多关于你的配置的信息也会很好(例如,您的存储库是如何注释的,您尝试从哪里访问EntityManager
、相关persistence.xml(如果有)、应用程序上下文xml(如果有))可能缺少部分信息,这有助于社区解决您的问题。我测试了您的建议,但仍然存在相同的例外:(@hamed我用另一个猜测更新了我的答案,希望有帮助。我正在使用spring 4.0.1。升级到4.1.1可能会解决我的问题吗?我不确定,你应该试试。如果你编辑你的问题并添加更多关于你的配置的信息也会很好(例如,如何注释存储库,从何处尝试访问EntityManager
,相关persistence.xml(如有),应用程序上下文xml(如有))可能缺少部分信息可以帮助社区解决您的问题。我已测试,但仍然存在相同的问题。您是否尝试从代码中删除@Primary
批注并查看结果?我已测试,但仍然存在相同的问题。您是否尝试从代码中删除@Primary
批注并查看结果?