Я просматривал несколько мест, как в сети, так и в коде Spring или Hibernate , но я не смог найти способ сказать, что@Modifying
собственный запрос, определенный в интерфейсе, который расширяет JpaRepository
, влияет только на определенный класс сущностей, поэтому остальные области кэша в кэше второго уровня не очищаются.
Таким образом, у меня естьотдельный класс для запуска моего запроса, где я звоню addSynchronizedEntityClass
, но это довольно громоздко.Я бы предпочел просто использовать org.springframework.data.jpa.repository.Modifying параметр (который, кажется, не существует) или некоторую другую аннотацию.
public interface CustomerRepository extends JpaRepository<Customer, Integer> {
@Modifying
@Query(
value = "DELETE FROM customers WHERE id IN ?1",
nativeQuery = true)
@???SomethingForSynchronizedEntityClass(Customer.class)
void customDelete(Collection<Integer> ids);
}
Итак,есть SomethingForSynchronizedEntityClass
или замена для org.springframework.data.jpa.repository.Query или для org.springframework.data.jpa.repository.Modifying ?Или хотя бы есть план?