Khi tôi tự động tạo cơ sở dữ liệu của mình với hibernate.hbm2ddl.auto=create
ràng buộc duy nhất 'không mong muốn' đang được tạo trong bảng ánh xạ. Tôi đang chạy postgres 9.1, các tạo bảng tuyên bố trở thành:Bộ sưu tập JPA có ràng buộc không mong muốn duy nhất trong bảng ánh xạ
CREATE TABLE schemaname.scanalerts
(
scanid bigint NOT NULL,
alerts_id bigint NOT NULL,
CONSTRAINT fkd65bd7541b5b1a8e FOREIGN KEY (scanid)
REFERENCES rfid.scan (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fkd65bd754860b0886 FOREIGN KEY (alerts_id)
REFERENCES rfid.alert (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT scanalerts_alerts_id_key UNIQUE (alerts_id),
CONSTRAINT scanalerts_scanid_alerts_id_key UNIQUE (scanid , alerts_id)
)
Ràng buộc không mong muốn là CONSTRAINT scanalerts_alerts_id_key UNIQUE (alerts_id)
, về cơ bản tôi chỉ muốn hạn chế duy nhất trên scanid và alerts_id.
Tôi đang sử dụng chú thích JPA để tạo ra các bản đồ, đây là mã của tôi:
@ElementCollection(targetClass = Alert.class, fetch = FetchType.EAGER)
@CollectionTable(name = "scanalerts", schema = RfidConstants.SCHEMA,
joinColumns = @JoinColumn(name = "scanid"),
uniqueConstraints = @UniqueConstraint(columnNames = { "scanid", "alerts_id" }))
private List<Alert> alerts;
Có cách nào để ngăn chặn việc tạo ra các hạn chế duy nhất alert_id?
Cảm ơn
@JBNizet Đây là Alert lập bản đồ chú thích:
@Entity
@Table(name = "alert", schema = "schemaname",
uniqueConstraints = @UniqueConstraint(columnNames = {"message", "alertPriority"}))
public class Alert implements Serializable {
@Id
@Column(name="id")
@SequenceGenerator(name = "alertSeq", sequenceName="ALERT_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "alertSeq")
private Long id;
@Column(name="versionnum")
@Version
private Long version;
@Column(name = "message", nullable = false)
private String message;
@Column(name = "alertpriority", nullable = false)
@Enumerated(EnumType.STRING)
private AlertPriority alertPriority;
Vui lòng chỉ cho chúng tôi mã và ánh xạ của Cảnh báo. –
@JBNizet Tôi không có ánh xạ trong lớp Thông báo cho lớp Quét, tôi có nên có một bản đồ ở đó không? – user2274508
No. Nhưng hãy cho chúng tôi thấy các chú thích mã và ánh xạ của nó. –