好的,我是新来的。我想要做的是说“这些类在这里持久存在(数据库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
答案 0 :(得分:2)
看起来你试图在某处EntityManagerFactory
注入@Autowired
。
始终使用@PersistenceContext
注入EntityManager
和@PersistenceUnit
来注入EntityManagerFactory
,他们应该正确处理多个持久性单元的情况(如果指定unitName
他们的属性)。