我正在使用 spring-data-jpa。将子实体添加到父实体后,我将父实体保存到数据库中。我想获取孩子的id,但我发现我得到的是空的。
我将 @GeneratedValue(strategy = GenerationType.IDENTITY) 添加到 getId() 方法,但它没有用。
这是模型:
@Entity
public class Parent {
private Integer id;
private List<Child> childList;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
return id;
}
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "parent_id")
public List<Child> getChildList() {
return childList;
}
// setters.....
}
@Entity
public class Child {
private Integer id;
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer getId() {
return id;
}
@Cloumn("name")
public String getName() {
return name;
}
}
父实体已经在数据库中,所以我直接找到它, ParentRepository entends JpaReportory
这里是我的测试代码:
Parent parent = parentRepository.findById(1);
Child child = new Child();
child.setName("child");
parent.getChildList().add(child);
parentRepository.save(parent);
System.out.println("child's id: " + child.getId());
我得到的输出是:
child's id: null
孩子被保存到数据库并且有id,但是实体在内存中的id仍然是空的,我如何在保存父母后得到孩子的id?而且因为我创建的孩子被其他对象引用,我需要只在这个孩子中获取 id 而不是从数据库中找到一个新对象。
紫衣仙女
神不在的星期二
相关分类