spring-mvc - 使用可嵌入键中的两个字段进行删除的 Spring Data JPA 方法

标签 spring-mvc jpa spring-data spring-data-jpa jpql

这是主要的实体类,它有一个嵌入的Id

public class LabResHivMutation implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private LabResHivMutationPK id;

    private String comments;

    @Column(name="MUTATION_TYPE_ID")
    private BigDecimal mutationTypeId;

    @Column(name="VALUE")
    private String value;   

}

这是可嵌入的 key

@Embeddable
public class LabResHivMutationPK implements Serializable {
    //default serial version id, required for serializable classes.
    private static final long serialVersionUID = 1L;

    @Column(name="TO_INST")
    private Long toInst;

    @Column(name="REL_INVSTID")
    private long relInvstid;

    @Column(name="MUTATION_ID")
    private long mutationId;

}

Spring Data Jpa中是否有任何删除方法可以仅基于两个可嵌入键(toInst,relInvstid)进行删除。

我仍然可以编写 JPQL 查询来删除它。我的问题是有没有可用的方法。

喜欢deleteById吗?

最佳答案

是的,repo.deleteByIdToInstAndIdRelInvstid(toInst,relInnvstid) 正如您所看到的,您必须指定 deleteByIdToInst ,这就是您引用嵌入 ID 字段的方式,与引用外关系字段的方式相同。这里的 Id 与您的字段命名匹配

@EmbeddedId
private LabResHivMutationPK id;

关于spring-mvc - 使用可嵌入键中的两个字段进行删除的 Spring Data JPA 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43383155/

相关文章:

spring - 是否可以跨多个 Controller 访问 Spring MVC 带注释的 session 变量?

spring - Eclipse 上的 "the annotation @Autowired is disallowed for this location"错误

spring-mvc - 作业未以固定速率执行

java - 在应用程序外部更新时,oneToMany/ManyToOne 对象会过时

java - 无法初始化类org.springframework.aop.framework.DefaultAopProxyFactory

java - 如何处理以下查询

java - hibernate 无PK

java - Spring 数据保存与 saveAll 性能

java - IncorrectResultSizeDataAccessException - 尝试简单地获取最新的行

java - 有什么方法可以在 JPA 或 Spring-data 中设置默认外键吗?