Java 如何对JPA引用的表列使用uniqueConstraint
如何在唯一约束中包含引用的表列?我想为Java 如何对JPA引用的表列使用uniqueConstraint,java,spring,jpa,Java,Spring,Jpa,如何在唯一约束中包含引用的表列?我想为toEmail、receipt.receiptSeries和receipt.receiptNum列的表调查创建一个唯一约束 请参见以下实体: 收据 @Entity @Table(name = "RECEIPT") public class Receipt { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "ID") private Long id;
toEmail
、receipt.receiptSeries
和receipt.receiptNum
列的表调查创建一个唯一约束
请参见以下实体:
收据
@Entity
@Table(name = "RECEIPT")
public class Receipt {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@Column(name = "RECEIPT_SERIES")
private String receiptSeries;
@Column(name = "RECEIPT_NUM")
private String receiptNum;
}
调查
@Entity
@Table(name = "SURVEY"}
public class Survey {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "RECEIPT_ID")
private Receipt receipt;
@Column(name = "TO_EMAIL")
private String toEmail;
}
我尝试过使用以下方法,但没有成功:
@Table(name = "SURVEY", uniqueConstraints = {
@UniqueConstraint(columnNames = {"TO_EMAIL", "RECEIPT.RECEIPT_SERIES", "RECEIPT.RECEIPT_NUM"})})
将复合主键与
receiptSeries
和receiptNum
一起用于接收不是一个选项。尝试类似的方法
@Table(name="notification_status", uniqueConstraints=
arrayOf(UniqueConstraint(columnNames= arrayOf("external_user_id",
"external_organization_id",
"notification_id"))))
您可以尝试使用
@Column(name=“TO_EMAIL”,unique=true)
假设这可能有助于you@RajithPemabandu是的,但这将使调查
表中的收件人电子邮件
列唯一。在我的问题中,同一封电子邮件可能会有多个调查
,但对于相同的收据系列
/收据数量
组合,则不会有