2013-02-11 5 views
7

JavaだけでJPAを設定しようとしています。jpa:repositoriesタグのJava構成バージョンは何ですか?

@EnableJpaRepositoriesはxmlのjpa:repositoriesタグに相当するという考えがありましたが、これは当てはまりません。

私は、XMLでこれを持っている:

<jpa:repositories base-package="com.myapp.bla.bla" /> 

しかし、私はそれを削除し、代わりに私のJavaの設定では

@EnableJpaRepositories("com.myapp.bla.bla") 

を使用している場合、私は例外を取得 - 私はそれを設定することは可能だと思いましたJavaとJPA 1.2.0からのJPA?

EDITは:ルート例外は

です

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; 
} 
+1

ご質問にも例外を投稿してください。 –

答えて

6

問題は、あなたの現在の構成がentityManagerFactoryBeanと呼ばれる豆を作成することです。ただし、ルート例外のエラーメッセージには、というentityManagerFactoryという名前のBeanが見つかりません。 (

  1. 変更entityManagerFactoryBean(からLocalContainerEntityManagerFactoryBeanを設定するメソッドの名前)てEntityManagerFactory へ:

    あなたはこの問題(あなたが最も好きなものを選択)を固定するための2つのオプションがあります)。これにより、というentityManagerFactoryという名前のBeanが作成されます。

  2. @Beanアノテーションのname属性を "entityManagerFactory"に設定します。つまり、構成メソッドに@Bean(name = "entityManagerFactory")注釈を付けてアノテーションを付けます。この方法で、Beanの名前を自分で指定し、注釈付きメソッドの名前が確実に無視されるようにすることができます。
+0

オプション3.アノテーションのentityManagerFactoryRefプロパティを設定します。これは質問が答えられたので新しいかもしれません。 –

関連する問題