gpt4 book ai didi

java - OneToOne 双向映射中的唯一约束

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:41 28 4
gpt4 key购买 nike

关系所有者中的双向一对一映射是否需要 unique=true

@Entity
public class Customer {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

private String name;

@OneToOne(cascade={CascadeType.PERSIST})
@JoinColumn(name="passport_id", unique=true) //is unique=true required for bi-directional one-to-one mapping
private Passport passport;

public Passport getPassport() {
return passport;
}

}

@Entity
public class Passport {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

@Column(name="passport_number")
private String passportNumber;

@OneToOne(mappedBy="passport")
private Customer customer;

public Customer getCustomer() {
return customer;
}

}

Hibernate 文档说数据库中的 FK 列应该被限制为唯一以模拟一对一的多重性,但它没有在双向映射中添加 unique=true

最佳答案

这是因为使用 Hibernate 自动 DDL 功能并不是强制的。您可以使用增量模式更新脚本,并且与模式相关的注释将毫无用处。坦率地说,我们有点将它们用于内存集成测试。

正如您所指出的,JoinColumn 应该声明唯一性约束。

关于java - OneToOne 双向映射中的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23869929/

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