Chciałbym wiedzieć, które podejście zastosować, aby zapobiec Hibernate 4.3.4 (ze Spring i Hibernate Vaidator) przed opróżnianiem brudnych obiektów. W moim kodzie używam ręcznej implementacji metody Hibernate Validator (metoda .validate() w samej instancji), która jest wywoływana tuż przed zapisaniem encji. Metoda validate() zwraca listę błędów, jeśli są one znalezione, w przeciwnym razie wywoływana jest funkcja Session.update() w celu przechowywania obiektu, a następnie zatwierdzenia transakcji.Zapobieganie sesji hibernacji przed opróżnianiem/zapisywaniem nieprawidłowych, zabrudzonych obiektów
To działa, ale gdy sama instancja jest manipulowana (parametry zaksięgowane/żądania są ustawione w encji) encja i odpowiednia sesja hibernacji są oznaczone jako "dirty", a jednostka jest przechowywana z następną sesją .flush().
W moim przypadku chciałbym mieć wyraźną kontrolę nad podmiotami, które mogą być przechowywane i zapobiec przechowywaniu jakichkolwiek brudnych jednostek, w jaki sposób mógłbym to osiągnąć?
EDIT:
wiem mogę ręcznie regulować to przez eksmisji podmiot (lub wyczyszczenie i ponowne podmiot poprzez scalenia), ale to nie jest moim celem. Zamiast ręcznie regulować trwałość, chciałbym mieć sytuację kompensacji, że żadna jednostka, która nie została jawnie zapisana i której transakcja nie została wyraźnie zatwierdzona, nie zostanie zapisana do bazy danych (np. Przez przechwytujący?).
Cześć Kostja, to rozwiązanie "odwrotne", ale nie to, do czego dążę. To, czego chcę, to sytuacja odwrotna, tylko obiekty jawnie zapisane i zatwierdzone mogą być przepłukiwane - domyślnie, bez odłączania, jeśli to możliwe. – Marius
Oczywiście, można modyfikować kontekst utrwalania w obie strony. Zobacz edycję. – kostja
Prawie tam, ale wciąż nie do końca to, co próbuję osiągnąć. Naprawdę nie chcę martwić się o brudne byty i regulować uporczywość w sposobie, w jaki opisujesz, ale raczej, na przykład za pomocą przechwytywacza, nigdy (automatycznie) opróżniaj te jednostki, gdy nie są jawnie zapisane, a transakcja nie została domyślnie zatwierdzona domyślnie, bez ponownego wprowadzania ich do sesji hibernacji, ani konieczności eksmisji ich przed opróżnieniem. – Marius