Ich habe immer gedacht, dass @PersistenceContext zum Injizieren von EntityManager in eine Container-verwaltete Anwendung war, während @PersistenceUnit zum Injizieren einer EntityManagerFactory war.Inject eine EntityManagerFactory durch @PersitenceContext oder @PersitenceUnit?
Javadoc- sagt
Für PersistenceUnit (http://docs.oracle.com/javaee/7/api/javax/persistence/PersistenceUnit.html)
drückt eine Abhängigkeit von einer EntityManagerFactory und seiner zugehörigen Persistenzeinheit.
Und für PersistenceContext (http://docs.oracle.com/javaee/7/api/javax/persistence/PersistenceContext.html)
äußert eine Abhängigkeit von einem Container verwalteten EntityManager und der damit verbundenen Persistenzkontext.
So gut weit so, aber dann die PPV-Tutorial Ich lese (siehe https://docs.oracle.com/cd/E19798-01/821-1841/bnbqy/index.html), das ein Beispiel wie diese Das folgende Beispiel zeigt
enthält, wie Transaktionen in einer Anwendung zu verwalten, die eine Anwendung verwendet --managed EntityManager:
@PersistenceContext
EntityManagerFactory emf;
EntityManager em;
@Resource
UserTransaction utx;
...
em = emf.createEntityManager();
try {
utx.begin();
em.persist(SomeEntity);
em.merge(AnotherEntity);
em.remove(ThirdEntity);
utx.commit();
} catch (Exception e) {
utx.rollback();
}
so kann der PersistenceContext auch auf eine EntityManagerFactory verweisen, wenn wir über eine Anwendung verwalteten Code zu sprechen?
Haftungsausschluss - nicht auf die Antworten von dieser Frage im Zusammenhang denke ich - PersistenceUnit vs PersistenceContext
suchst du noch nach einer Antwort? –