我正在尝试仅使用 Java 配置 JPA。
我知道@EnableJpaRepositories 相当于xml 中的jpa:repositories 标记,但我想不是这样吗?
我的xml中有这个:
<jpa:repositories base-package="com.myapp.bla.bla" />
但是,如果我将其删除并改为使用
@EnableJpaRepositories("com.myapp.bla.bla")
在我的 java 配置中,我遇到了一个异常 - 我认为从 1.2.0 开始就可以使用 Java 配置 JPA?
编辑:
根本的例外是:
No bean named 'entityManagerFactory' is defined
我认为异常与我的配置中的这个定义有关,但如前所述,如果我保留 xml 并将其导入我的 java 配置,一切正常。
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean() throws ClassNotFoundException {
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
factoryBean.setDataSource(dataSource());
factoryBean.setPackagesToScan(new String[] { "com.myapp.bla.bla.model" });
factoryBean.setPersistenceProviderClass(HibernatePersistence.class);
Properties props = new Properties();
props.put("hibernate.dialect", "org.hibernate.dialect.MySQL5InnoDBDialect");
factoryBean.setJpaProperties(props);
return factoryBean;
}