spring - jpa :repositories tag?的Java配置版本是多少

标签 spring spring-data spring-data-jpa

我正在尝试仅使用 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;
}

最佳答案

问题是您当前的配置创建了一个名为 entityManagerFactoryBean 的 bean。但是,根异常的错误消息表明未找到名为 entityManagerFactory 的 bean。

您有两个选项可以解决此问题(选择您最喜欢的一个):

  1. 将配置 LocalContainerEntityManagerFactoryBean 的方法名称从 entityManagerFactoryBean() 更改为 entityManagerFactory()。这将创建一个名为 entityManagerFactory 的 bean。
  2. @Bean注释的name属性设置为“entityManagerFactory”。换句话说,使用 @Bean(name="entityManagerFactory") 注解来注解配置方法。这样你就可以自己指定bean的名称并确保被注释的方法的名称被忽略。

关于spring - jpa :repositories tag?的Java配置版本是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14818836/

相关文章:

java - 在 .war 之外引用 configuration.properties

java - 分面分类 - Spring Data Mongo

hibernate - Hibernate/spring-data-jpa 中的单向一对多关联

hibernate - Groovy/Hibernate/@Transaction 返回当前线程未找到 session

java - 事务结束时自动刷新的异常

spring - 在 Spring 4.0.3 + Spring Security 3.2.3 + Thymeleaf 2.1.2 中将 CSRF 放入 Headers

java - 获取 MongoDB 当前集合名称

java - 使用 Spring Repo 更新 OneToOne 列

java - DBsetup 后 Spring 数据不增加

java - 使用 Hibernate 和 Spring Data JPA 激活 SQL 语句日志记录