0

わかりました、私はこれが初めてです。私がやりたいのは、「これらのクラスはここ (データベース a) に保持され、これらのクラスはあちら (データベース b) に保持されている」ということです。ドライバー情報を含むプロパティのコレクションも保持できる、さまざまな永続ユニットグループの下でクラスを明示的に定義することになっていると思います。

<persistence-unit name="nytdModel" transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <class>gov.vermont.dcf.nytd.model.AbstractElementImpl</class>
  ...
  <exclude-unlisted-classes>true</exclude-unlisted-classes>
  <properties>
    <property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="hibernate.connection.url" value="jdbc:jtds:sqlserver://localhost;..."/>
    <property name="hibernate.connection.username" value="..."/>
    <property name="hibernate.connection.password" value="..."/>
  </properties>
</persistence-unit>

次に、Dao クラスで、コンテキストを提供するだけです。

@Repository
public class AFCARSJpaDao
{
    @PersistenceContext(unitName = "nytdModel")
    private EntityManager entityManger;
}

ただし、No unique bean of type [javax.persistence.EntityManagerFactory] is defined: expected single bean but found 2エラーが発生します。私は何を間違っていますか?

私はSpring 3.0.4を使用しています

4

1 に答える 1

2

どこかにEntityManagerFactorywithを注入しようとしているようです。@Autowired

常に@PersistenceContextto injectEntityManager@PersistenceUnitto injectを使用します。EntityManagerFactory複数の永続ユニットのケースを正しく処理する必要があります (unitNameそれらに属性を指定した場合)。

于 2011-05-23T19:09:56.303 に答える