Java JPA @OneToMany需要回复@ManyToOne吗?

bgu*_*uiz 7 java orm persistence jpa

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)
);
Run Code Online (Sandbox Code Playgroud)

鉴于我使用上面的SQL语句创建了两个表,并且我想Entity为它们创建类,对于类B,我有这些成员属性:

@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;
Run Code Online (Sandbox Code Playgroud)

在课堂上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?
Run Code Online (Sandbox Code Playgroud)

它是一个必要或一个好主意,有一个相互@OneToMany@ManyToOne?如果我现在做出设计决定而忽略了带@OneToMany注释的属性,那会不会再次引起我的注意?

Pas*_*ent 12

为@ManyToOne提供互惠的@OneToMany是必要的还是个好主意?

不,它根本不是强制性的,这是一个纯粹的设计决定.整个问题是......你想要这个(即单向关联):

单向

或者这个(即双向关联):

双向

如果你不需要从A获得Bs,那么你可以跳过bs属性和OneToManyA侧.

如果我现在做出设计决定省略@OneToMany注释属性,那么我会再回过头来咬我.

不,如果您发现需要它,可以稍后添加.