【发布时间】:2020-04-11 17:37:38
【问题描述】:
在我的大学课堂作业中,我有一个特定的练习要做。
给定这样的实体结构:
@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 {
...
}
我必须在 ParentRepository 或者更确切地说是 JPQL Query 中实现 JpaRepository 方法来对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);
}
这只是我的盲目尝试,但我找不到任何材料来解释如何做这样的事情。
有人对如何解决此任务有任何建议吗?
【问题讨论】:
标签: spring jpa spring-data-jpa spring-data jpql