Использование различных источников данных для постоянных единиц в Spring - PullRequest
0 голосов
/ 23 мая 2011

Хорошо, я новичок в этом.Я хочу сказать, что «эти классы сохраняются здесь (база данных 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>

Затем в моем Даоклассы, я должен просто предоставить контекст:

@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

1 Ответ

2 голосов
/ 23 мая 2011

Похоже, вы пытаетесь ввести EntityManagerFactory с помощью @Autowired где-то.

Всегда используйте @PersistenceContext для ввода EntityManager и @PersistenceUnit для ввода EntityManagerFactory, они должны обрабатыватьправильно указать несколько единиц персистентности (если вы укажете для них атрибут unitName).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...