2015-10-09 2 views
1

Я пытаюсь настроить компонент JPA верблюда, и когда я запускаю тестовый случай, я получаю эту ошибкуorg.apache.openjpa.persistence.InvalidStateException: Этот брокер не настроен на использование транзакции, управляемые

«орг. apache.openjpa.persistence.InvalidStateException: этот брокер не настроен на использование управляемых транзакций. "

Но если я не использую любой менеджер транзакций, он принимает значение по умолчанию один и все идет хорошим

Моей конфигурации

`@JndiBind("jpa") 
@Provides*/ 
@Singleton 
public JpaComponent getJpa(JpaVendorAdapter vendorAdapter){ 
    JpaComponent jpa = new JpaComponent(); 
    LocalEntityManagerFactoryBean fBean = new LocalEntityManagerFactoryBean(); 
    fBean.setJpaVendorAdapter(vendorAdapter); 
    fBean.setPersistenceUnitName("camel"); 
    fBean.afterPropertiesSet(); 
    EntityManagerFactory entityManagerFactory = fBean.getNativeEntityManagerFactory(); 
    JpaTransactionManager txMgr = new JpaTransactionManager(); 
    txMgr.setEntityManagerFactory(entityManagerFactory); 

    jpa.setEntityManagerFactory(entityManagerFactory); 

    jpa.setTransactionManager(txMgr); 

    return jpa; 
}` 

ответ

1

Проблема заключается в том, с получением объекта EntityManager в вашем коде.

EntityManagerFactory entityManagerFactory = fBean.getObject(); 

    JpaTransactionManager txMgr = new JpaTransactionManager(); 
    txMgr.setEntityManagerFactory(entityManagerFactory); 
    txMgr.afterPropertiesSet(); 

    jpa.setEntityManagerFactory(entityManagerFactory); 
    jpa.setTransactionManager(txMgr); 
Смежные вопросы