мне нужно выбрать EntityManager в моем проекте JavaEE6 (JBoss7) в зависимости от сеанса входа в систему. Пользователь "Peter" приведет к использованию базы данных dbPeter, а пользователь "Paul" приведет к использованию базы данных dbPaul.
Вопрос в том, как я могу создать менеджер сущностей, который автоматически привязывается к соответствующему блоку базы данных/постоянства?
Я использую CDI для внедрения EntityManager. Итак, мой первый шаг — создать производителя для EntityManager, который ищет информацию для входа в сеанс и выбирает базу данных. Итак, как мне выбрать контекст базы данных/постоянства в этом prducer?? Начиная с Jboss7, я больше не вижу никакой записи jndi для модуля сохраняемости, поэтому поиск jndi не может быть рассмотрен.
я пытался использовать
@Produces
public EntityManager produceEM() {
EntityManagerFactory managerFactory = Persistence.createEntityManagerFactory( "dbPaul" );
return managerFactory.createEntityManager();
}
но это не удается во время развертывания с
HHH000231: Ошибка экспорта схемы: java.sql.SQLException: Вы не можете установить автоматическую фиксацию во время управляемой транзакции!
Это нормально, потому что место, где вводится em, в основном находится внутри транзакции. У кого-нибудь есть идея?