在oneToMany单面连接表中添加子实体

时间:2015-01-04 17:02:47

标签: hibernate jpa spring-data

我的实体喜欢..

@Entity
public class parent{
@id
private string id;
private string name;
@OneToMAny
List<Child> children = new ArrayList<Child>();

//getters n setters
}  

保存父级后,如果我想添加子级,那么我需要像

一样
Parent parent = parentRepository.findOne(parentId);     
if(parent != null){
      parent.getChildren().add(new Child("Id","name"));
}

我们可以看到我需要通过parent.getChildren()获取所有子项然后再添加一个新的,假设我在子表中有批量记录,是否适合添加子进程? 有没有什么好方法可以添加新孩子。 我不能使用oneToMAny映射在这里,因为有一些实体持有相同的子实体(Child)作为子List,所以我不能通过添加外键列修改我的子实体而我只能使用joinTable。我正在使用jpa + Spring + Hibernate

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚:/但是从我的理解:

一位父母有很多孩子。一个孩子有很多父母。

这是一种多对多的关系。

你可以这样做:

实体:Parent,Child,ParentChild

  • Parent = OneToMany类型ParentChild
  • Child = OneToMany类型ParentChild
  • ParentChild =类型为Parent和Child的ManyToOne

您可以单独保留ParentChild而无需提取列表。

或者你可以有一个递归表。

  • 人:他母亲的许多人。