嗨,我正在学习使用JPA进行@ManyToMany关系映射。我更或多或少地理解它是如何工作的,但我有一个疑问。让我先展示一下我做一些映射的代码:
@Entity
public class EntityE implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long eId;
@ManyToMany
@JoinTable(joinColumns =
@JoinColumn(name = "eId"), inverseJoinColumns =
@JoinColumn(name = "fId"))
private Collection<EntityF> entityFs;
//...
}
还可以参考以下实体:
@Entity
public class EntityF implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long fId;
private Collection<EntityE> entityEs;
//...
}
这是我在数据库中得到的信息:
我的疑问是:
- 我想创建一个@ManyToMany关系,其中EntityE是关系的所有者,这种方法正确吗?
- 我希望关系是单向的,因此应该只创建一个中介表EntityB_EntityF。但出于某种原因,它还创建了第二个表EntityF_EntityE。我不明白这是为什么?这正常吗?如果不是,我应该如何解决?