nowego do wiosny, a tu @stackoverflowWiosna @Transactional scalania i utrzymują pytanie
buduję inwentaryzacji autonomicznego & Sales śledzenia aplikacji (Apache Pivot/wiosna/JPA/Hibernate/MySQL) dla firmy rozprowadzającej .
Do tej pory uważam, że wszystko jest CRUD, więc planuję mieć klasę bazową ze wszystkim @ Transactional.
Potem dostałem problem z moją generyczną metodą składowania. Czy utrzymywanie i łączenie metody EntityManager od wiosny ma znaczenie?
Próbowałem uruchomić i zadzwoniłem do zapisywania zarówno wstawiania i aktualizowania i działało dobrze (myślę, że wiosna automatycznie odświeża encję za każdym razem, gdy wywołuję moją metodę zapisu // zobaczyłem, że zapytania hibernacji są rejestrowane, czy to prawda?).
@Transactional
public abstract class GenericDAO {
protected EntityManager em;
// em [email protected]/setter
public void save(T t) {
// if (t.getId() == null) // create new
// {
// em.persist(t);
// } else // update
// {
em.merge(t);
// }
}
}
A przy okazji, bez takiej konfiguracji, nie będę narażać na szwank wydajności? Na przykład wywołanie metody salesDAO.findAll() do generowania raportów (która nie musi być transakcyjna, prawda?).
dzięki !!!
Jestem gościem to najprostsza droga. Więc jeśli mam JpaDaoSupport, a otrzymam od niego jednostkę, wszelkie zmiany zostaną automatycznie zatwierdzone? Myślę, że będę miał dwie odmiany metody oszczędzania, która będzie obowiązywać nadal i która będzie wywoływać flush. Wszelkie uwagi na ten temat? – thirdy
Masz na myśli automatyczne, jak w zatwierdzonym bez zapisu lub aktualizacji? Jeśli tak, to nie sądzę, że zawsze po prostu dzwonię zapisać na nowym podmiocie lub aktualizować na istniejącym, aby kontynuować. Nigdy nie musiałem wywoływać metody flush, ale mój dostęp do bazy danych jest dość prosty dla dowolnego żądania. –
Muszę teraz zrezygnować ze sprawdzania wiosny. Ciekawe, w jaki sposób Grails poprawia to? Nie będę musiał napotykać takich problemów w Grails, prawda? – thirdy