【发布时间】:2019-09-08 16:26:25
【问题描述】:
我在 Spring Boot Hibernate 中实现了一个带有自动生成注释的复合主键。以下是场景:
- 帐户表有以下列:
stateCode,branchCode,prodCode,subProdCode,accountNumber
当 stateCode,branchCode,prodCode,subProdCode 发生变化时,表 Account 应该有新的 accountNumber 。
例如:
stateCode,branchCode,prodCode,subProdCode,accountNumber
11,01,20,1,00001
11,01,30,1,00001 (there is a change in prodCode)
11,01,30,2,00001 (there is a change in subprodcode)
11,01,20,2,00001 (there is a change in prod & subprodcode)
11,01,20,1,00002 (prodcode,subprod code has already account number 00001 ,
now it should be 00002)
同样的问题已经发布在Sequences with composite primary key
但是我想知道,最新版本的spring boot hibernate中是否引入了任何新功能。
下面是我实现的代码:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@IdClass(CompositeId.class)
public class CompositeAccountNumber {
private String city;
private String custName;
@Id
@GeneratedValue
private Long accNumber;
@Id
private String stateCode;
@Id
private String branchCode;
@Id
private String prodCode;
@Id
private String subProdCode;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class CompositeId implements Serializable {
private String stateCode;
private String branchCode;
private String prodCode;
private String subProdCode;
private Long accNumber;
}
我得到以下代码的结果:
stateCode,branchCode,prodCode,subProdCode,accountNumber
11,01,20,1,00001
11,01,30,1,00002
11,01,30,2,00003
11,01,20,2,00004
11,01,20,1,00005
【问题讨论】:
标签: hibernate jpa autogeneratecolumn