java无法使用JPA创建映射实体
A.我有一个实体A,如下所示:
Table - EntityA(id long PK, name varchar)
@Entity @Table
EntityA{
@Id
long id;
String name;
}
B.基于此,我想通过JPA(使用单向映射)获取以下类中的数据:
@Entity @Table
EntityMap{
long id;
@OneToOne
EntityA entity;
@OneToMany
List<EntityA> mappedEntity;
}
C.为了使其暂时有效,我创建了如下实体:
Table - entity_map(id long pk, source_entity_id long FK-EntityA_id, target_entity_id long FK-EntityA_id)
@Entity @Table
EntityMap{
@Id
long id;
@OneToOne
@JoinColumn(name = "source_entity_id")
EntityA sourceEntity;
@ManyToOne
@JoinColumn(name = "target_entity_id")
EntityA targetEntity;
}
这是预期的工作,但我需要在#B中解释实体。有什么建议吗
# 1 楼答案
@OneToMany
关系可以由在
EntityA
表中,需要一个列entity_map_id
和foreign key (entity_map_id) references EntityMap(id)
约束如果无法更改
EntityA
表,则需要一个@JoinTable
来执行映射:联接表包含两列
ENTITY_A_FK
和MY_ENTITY_MAP_FK
: