Jpa联合主键

第一步,先写一个作为联合主键的实体类,把联合主键两列放进来 

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class StReportTemplatePK implements Serializable {

    private String hospCde;

    private String section;
}

第二步,写的实体类

@Data
@Entity
//注意这个注解!!!!这个注解把联合主键的类放进来
@IdClass(StReportTemplatePK.class)
@Table(name = "st_report_template")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StReportTemplate implements Serializable {
    @Id//这个注解很重要,是联合主键其中的一个
    @Column(name = "hosp_cde", nullable = false,unique = false)
    private String hospCde;

    @Id//这个注解也很重要,是联合主键的另外一个
    @Column(name = "section", nullable = false)
    private String section;

    @Column(name = "path", nullable = false)
    private String path;

    @Column(name = "lastUpdUsr", nullable = false)
    private String lastUpdUsr;

    @Column(name = "lastUpdDt", nullable = false)
    private String lastUpdDt;

    @Column(name = "statusCde", nullable = false)
    private String statusCde;
}

此时实体中有了2个@ID注解

第三步,写repository

@Repository
public interface StReportTemplateRepository extends JpaRepository, JpaSpecificationExecutor {
}

你可能感兴趣的:(数据库,sql,java)