Create Table A (
ID varchar(8),
Primary Key(ID)
);
Create Table B (
ID varchar(8),
A_ID varchar(8),
Primary Key(ID),
Foreign Key(A_ID) References A(ID)
);
既然我已经创建使用上面的SQL语句两个表,我想创建Entity
类对他们来说,该类B
,我有这些成员属性:Java JPA @OneToMany需要回报@ManyToOne?
@Id
@Column(name = "ID", nullable = false, length = 8)
private String id;
@JoinColumn(name = "A_ID", referencedColumnName = "ID", nullable = false)
@ManyToOne(optional = false)
private A AId;
在A
类,我是否需要回报多对一的关系?
@Id
@Column(name = "ID", nullable = false, length = 8)
private String id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "AId")
private List<B> BList; //<-- Is this attribute necessary?
它是一个必要或一个好主意,有对@ManyToOne
互惠@OneToMany
?如果我现在做出设计决定忽略@OneToMany
带注释的属性,那会不会再让我进一步咬我?
+1和检查@Pascal Thivent:您指出我可以在以后添加它,如果我需要它:那是我的主要关注点。 – bguiz 2010-05-11 06:42:20
我通常尽量避免单向映射。仅仅因为数据库中的某些东西是用单独的连接表建模的(无论出于何种原因)并不意味着我的对象模型也必须这样做。在上面的例子中,OneToOne-Mapping对于单向解决方案就足够了(当然这必须坚持域)。 – lostiniceland 2015-08-04 09:29:49