我在模型中有两个实体,例如Order和BankDetail。订单与具有一对一关联的BankDetail组成。
类建模
作为组合,BankDetail将是Order对象中的一个字段。但是对于BankDetails类,有两个选项,即Order可以是BankDetail的一部分,而Order不能是BankDetail的一部分。 是否还有其他条件可以选择其中一个接受导航,例如在第一个选项中,可以导航到BankDetail对象的Order。
JPA
Database tables
table_order(id, ..)
table_bank_detail(id,order_id, ..)
第一个具有双向关系的模型。
@Entidy
Class Order {
@Id
@Column(name = "id")
private Long id;
@OneToOne(mappedBy = "order")
private OrderBankDetail bankDetail;
}
Class BankDetail {
@Id
@Column(name = "id")
private Long id;
@OneToOne
@JoinColumn(name = "order_id")
private Order Order;
}
现在,在该模型中,BankDetails包含对Order的引用似乎并不明显,因为Order是那里的主要实体。 所以我将其更改为包含单向关系的Second Model。
@Entidy
Class Order {
@Id
@Column(name = "id")
private Long id;
@OneToOne
@JoinColumn(name = "id", referencedColumnName = "order_id")
private OrderBankDetail bankDetail;
}
Class BankDetail {
@Id
@Column(name = "id")
private Long id;
}
这样做是否正确? 如果是,在哪种情况下应优先选择上述哪一项? 从JPA的角度来看,这两种模型的优缺点是什么。