如何持久化单向@ManyToMany实体



有两个实体,实体A具有@ManyToMany注释并知道实体B。

@Entity
class EntityA {
@Id
private Long id;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "entity_a_entity_b", joinColumns = @JoinColumn(name = "fk_entity_a"), inverseJoinColumns = @JoinColumn(name = "fk_entity_b"))
private Set<EntityB> entitiesB = new HashSet<>();
...
}
@Entity
class EntityB {
@Id
private Long id;
...
}

我希望能够在实体B已经创建时保持它,或者在它还没有创建时创建一个新实体。JSON文件的格式如下:

{
"name": "This is new Entity A",
"entitiesB": [
{
"name": "This is new Entity B"
},
{
"id": 1,
"name": "This entity B already exists"
}
]
}

最后,用一行entityARepository.save(entityA)调用save方法,此操作的结果是传递给持久化的分离实体。你对如何正确地做这件事有什么指导吗?它是一个Spring Boot应用程序,因此它是通过REST API保存的。

我找到了解决方案。在保存实体A之前,通过其存储库检索实体B并将检索到的对象传递给集合就足够了。

最新更新