gpt4 book ai didi

java - 如何在表中添加两个主键?

转载 作者:行者123 更新时间:2023-12-02 03:01:17 25 4
gpt4 key购买 nike

SalutationMst.java

@Entity
@Table(name = "SalutationMst")
@EntityListeners(AuditingEntityListener.class)

public class SalutationMst {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = true )///////////////id
private Long id;
//@Id
@Column(name = "code", nullable = false, length=15)///////////////code
private String code;
@Column(name = "name", nullable = false, length=15)////////////////name
private String name;
//private long genderid;
@Column(name = "active", nullable = false)////////////////active
private Boolean active;

//@ManyToOne(targetEntity=GenderMst.class,cascade=CascadeType.ALL)
@ManyToOne
//@JoinColumn(name="id", nullable=false)
private GenderMst genderMst;
//getters snd setters
}

这里的字符串代码也应该是pk。字符串 id 是自动生成的,但代码不是自动生成的。通过即将到来的 exp,我需要指定代码是重复的,因为我需要代码作为 pk。

GenderMst.java

@Entity
@Table(name = "GenderMst")
public class GenderMst {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
private Long id;


public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

@Column(name = "code", nullable = true,length=15)
private String code;
@Column(name = "name", nullable = true,length=15)
private String name;
//getters and setters
}

最佳答案

实现此目的的一种方法是,您可以为Composite Primary Key 创建一个单独的类,并将其用作EmbeddedId,如下所示:

@Embeddable
public class SalutationMstId {
private Long id;
private String code;

//constructors

//getter setters
}

并像这样使用它:

@Entity
@Table(name = "SalutationMst")
@EntityListeners(AuditingEntityListener.class)

public class SalutationMst {
@EmbeddedId
private SalutationMstId id;
@Column(name = "name", nullable = false, length=15)////////////////name
private String name;
//private long genderid;
@Column(name = "active", nullable = false)////////////////active
private Boolean active;

//@ManyToOne(targetEntity=GenderMst.class,cascade=CascadeType.ALL)
@ManyToOne
//@JoinColumn(name="id", nullable=false)
private GenderMst genderMst;
//getters snd setters
}

了解更多信息 this link

关于java - 如何在表中添加两个主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57050701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com