首页 > 解决方案 > 基于实体删除记录的 JPA 表达式

问题描述

我正在尝试根据实体从数据库中删除记录。
我有列表,我将其作为参数传递给 JPA 存储库删除方法。
但我得到以下异常:

未找到 StudentEntity 类型的属性删除!

表架构:

学生号 | 学生姓名 | 学生卷号 | 地址

学生实体:

@Entity
@Getter
@Setter
@IdClass( PK.class )
@Table("student_data", schema= "public")
public class StudentEntity{

 @Id
 @Column("studentId")
 private Integer studentId;

 @Id
 @Column("studentName")
 private String studentName;

 @Id
 @Column("studentRollNo")
 private Integer studentRollNo;

 @Column("address")
 private String address;
}

复合键:
public class PK implements Serializable{ 
 
     private Integer studentId;
     private String studentName;
     private Integer studentRollNo;
}

存储库:
@Repository
public interface StudentRepo extends JpaRepository<StudentEntity, PK>{

  @Transactional
  @Modifying
  int delete(@Param("tobeDeletedEntities") List<StudentEntity> tobeDeletedEntities);

}

请帮忙。

标签: javaspring-bootjpaspring-data-jpa

解决方案


我认为你不需要写那个。JpaRepository 已经具有该功能。

JpaRepository.deleteInBatch(可迭代实体)

只需致电:

studentRepo.deleteInBatch(listOfStudentsToDelete);

推荐阅读