/ / Hibernate bez splachovania pred nájdením () výsledkom je null entity (JBoss AS7 kontajner riadený emf pomocou jpa2) - jar, hibernate, jpa-2.0, jboss7.x

Spánku spánku pred vyprázdňovaním pred nájdením () vyúsťuje do nulovej entity (JBoss AS7 kontajner riadený emf pomocou jpa2) - jar, hibernácia, jpa-2.0, jboss7.x

Prepísal som správcu entít mojej aplikácietováreň sa od jari podarilo kontajnerom riadiť a narazila na problém. Pri vytváraní entity existujú časy, kedy som ju musel vyžiadať v rámci tej istej transakcie, v ktorej bola pôvodne vytvorená, predtým, než bola na konci automaticky splachovaná. Na jar by manažér entity (verím) automaticky vyprázdnil kontext pred spustením nájdenia a mohol vrátiť správny objekt, ale v jboss sa metóda find vráti null.

Tu je vzorka problému:

@PersistenceContext
private EntityManager entityManager;

private void test(){
Person person = new Person("firstname", "lastname", "email", "user", "pass", Person.PersonType.admin);
entityManager.persist(person);
assert person.getId() != null;
Person person2 = entityManager.find(Person.class, person.getId());
assert person2 != null; //fail in jboss, ok in Spring
}

Pokúsim sa pridať entityManager.flush() hovor medzi persist() a find() metódy, jboss hodí a javax.persistence.TransactionRequiredException: no transaction is in progress chyba, bez ohľadu na to, či hodím @Transakčné poznámky okolo metódy / triedy, na ktorom beží test.

Súbory mojej perzistencie.xml <property name="org.hibernate.FlushMode" value="auto"/>, ale zdá sa, že nefunguje.

Existuje nejaká vlastnosť konfigurácie, ktorú som nechal oznámiť jbossovi, aby vypustil svoj kontext do databázy pred spustením príkazu Nájsť? Alebo objednávam nesprávne svoje vyhlásenia?

Ja som dal svoje persistence.xml a my-ds.xml súbory na pastebíne.

Vdaka za pomoc.

editovať

Vyriešený. Pozrite si pripomienky nižšie

odpovede:

0 pre odpoveď č. 1

Krátko po odovzdaní súboru spring-data.xml som si uvedomil, že som zabudol na fazuľa. Po pridaní, @Transactional tag pracoval podľa očakávania a problém bol vyriešený.