비 ejb 응용 프로그램에 다음 코드를 어떻게 저장합니까? 코드가 작동합니다. JTA EntityManager는 getTransaction()을 사용할 수 없습니다.
@Override
public void saveItems(Collection<T> items) {
synchronized (em) {
EntityTransaction tx = em.getTransaction();
try {
tx.begin();
for (T item : items) {
saveItem_((Class<T>) null, item);
}
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
}
}
는 새 응용 프로그램에서 나는 EJB3 + JSF를 사용하고 있는데 위의 코드를 포함하는 라이브러리를 다시 사용하고 싶습니다. 새 응용 프로그램에 대한 나의 peristence 단위는 다음과 같습니다
<persistence-unit name="myApp" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>MySQLConnection</jta-data-source>
</persistence-unit>
나의 새로운 응용 프로그램은이 선에 도달 할 때 예외를 발생 :
EntityTransaction tx = em.getTransaction();
예외가 있습니다 :
A JTA EntityManager cannot use getTransaction()
어느를 충분 해. 문제는 컨테이너에서 트랜잭션을 관리하도록 코드를 변환하는 방법입니다. 아마 내 콩 메서드는 적절하게 주석을 추가해야 ... 질문은 어떻게?
여기 해결책은 무엇입니까? – rtcarlson
@rtcarlson 왜 downvoted & 나는'UserTransaction' 인터페이스를 사용하기 위해 내 게시물을 정리하지 않았습니다. –
@downvoter 설명 할 수없고 이해할 수없는 경우 이유없이 다운볼트하지 마십시오. –