Frühjahr 3.1 + Hibernate 4.1 Propagation.Supports Problem

8

Ich migriere mein Projekt von Spring 3.0 + Hibernate 3.6.x nach S3.1 + H4.1

mein neuer Code ist der folgende

%Vor%

Wenn getStudent method marker als SUPPORTS ausgeführt wird und nur gelesen wird, bekomme ich

%Vor%

Früher war es mit Spring 3.0 und Hibernate 3.6.x in Ordnung, jetzt wurde es geändert. Ich habe von Spring-Foren, die mähen, ich brauche Mark-Transaktion erforderlich, wenn ich sessionFactory.getCurrentSession();

verwenden muss

Ich habe die Technik der unteren Ebene verwendet, um die maximale Geschwindigkeit in meinem Code zu erreichen. Bei Operationen, die mehrere get / save / update / queries erfordern, habe ich folgendes gemacht:

  1. aufgerufene Methode als SUPPORTS .
  2. markiert
  3. Alle Anfragen erhalten, die auch als SUPPORTS inside markiert sind erste Methode.
  4. hat dann Abfragen gestartet, die innerhalb der gleichen Methode als REQUIRED markiert sind, und das ist ein Punkt wo meine Rollback-Transaktion beginnt.

Ich habe eine gute Leistungsverbesserung mit dieser Technik, aber wenn ich alle meine Methoden als REQUIRED markiere, wird es zerstört.

Wie kann es umgehen?

    
danny.lesnik 16.04.2012, 21:13
quelle

2 Antworten

3

Ich habe das gleiche Problem beim Experimentieren mit Spring und Hibernate 3/4 festgestellt.

Es sieht so aus, als wäre dies ein bekanntes Problem, das im folgenden JIRA-Link beschrieben wird.

Ссылка

Sieht so aus, als ob die Hibernate 4-Version von SpringSessionContext keine neue Sitzung öffnet, wenn keine Transaktion / Sitzung geöffnet ist und die aufgerufene Methode @Transactional mit propagation = Propagation.SUPPORTS konfiguriert ist.

    
mess 24.08.2013 17:38
quelle
0

Ich denke, Sie können die Transaktion immer noch als schreibgeschützt markieren. nicht sicher, ob es Auswirkungen auf die Leistung hat.

    
Jigar Parekh 02.07.2012 19:04
quelle

Tags und Links