How can I include a referenced table column in a unique constraint? I want to create a unique constraint for table Survey for columns toEmail
, receipt.receiptSeries
and receipt.receiptNum
.
See entities below please:
Receipt
@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;
}
Survey
@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;
}
I've tried using the approach below with no success:
@Table(name = "SURVEY", uniqueConstraints = {
@UniqueConstraint(columnNames = {"TO_EMAIL", "RECEIPT.RECEIPT_SERIES", "RECEIPT.RECEIPT_NUM"})})
Using a composite primary key with receiptSeries
and receiptNum
for Receipt is not an option.