У меня есть конкретное c упражнение, которое нужно выполнить в рамках домашней работы в университете. Данная структура сущностей выглядит следующим образом:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Parent {
...some fields...
}
@Entity
public class ChildA extends Parent {
...
}
@Entity
public class ChildB extends Parent {
...
}
Мне нужно реализовать метод JpaRepository в ParentRepository или, скорее, JPQL Query, чтобы выполнить операцию обновления таблицы, указанной параметром Class<? extends Parent>
. Просто метод должен обновить какое-то поле, но только в подклассе, заданном в качестве параметра.
Структура метода должна быть такой:
public interface ParentRepository extends JpaRepository<Parent, Integer> {
void updateInBulk(Class<? extends Parent> clazz, int someParameter);
}
Я придумал что-то подобное, но это не сработало.
public interface ParentRepository extends JpaRepository<Parent, Integer> {
@Modifying
@Query("update :entity e set e.some_field = 'T' where e.other_field > :some_param")
void updateInBulk(@Param("entity") Class<? extends Parent> clazz, @Param("some_param") int someParam);
}
Это был только мой слепой выстрел, но я не мог найти никаких материалов, объясняющих, как делать такие вещи, как это.
У кого-нибудь есть предложения, как решить эту задачу?