Mirkasy tworzę sobie specyfikację za pomocą
Mam atrybuty i sprawdzam kazdy czy jest null i jesli nie to dodaje go do warunku AND poprzez predykaty.
Problemem jest gdy wszystkie pola sa null a więc zapytanie powinno zwrócić wszystkie elementy a hibernate robi w zapytaniu:
Specyfikacje robie mniej wiecej tak:
org.springframework.data.jpa.domain.Specification
.Mam atrybuty i sprawdzam kazdy czy jest null i jesli nie to dodaje go do warunku AND poprzez predykaty.
Problemem jest gdy wszystkie pola sa null a więc zapytanie powinno zwrócić wszystkie elementy a hibernate robi w zapytaniu:
where 0=1
Specyfikacje robie mniej wiecej tak:
private static Specification buildUserSpecififcation(
Attributes searchAttributes) {
return (Specification)
(root, query, criteriaBuilder) -> {
List predicates = new ArrayList<>();
1. czy metoda w serwisie zapisująca jeden obiekt, ale posiada childy i zapis jest kaskadowy powinna być @Transactional?
2. czy podczas modyfikacji tej encji metoda powinna być @Transactional?
#java #sping #hibernate