我有两节课。
public class Reservation {
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true, mappedBy = "reservation")
private List<Night> nights; \\assume getters and setters
}
public class Night {
@ManyToOne
@JoinColumn(name = "RESERVATION_ID")
private Reservation reservation;
}
我的保存工作原理如下:
Reservation r = new Reservation();
r.getNights().add(new Night());
return dao.save(r);
这样可以保存预约,并保存夜晚。但是当我查看数据库时,NIGHT表中的RESERVATION_ID列为空。
在以前的项目中(在升级到Java 8和JPA 2.1之前),我不需要在子项上手动设置父对象,以便保存该关联。有什么改变,或者我做错了什么?
编辑:
这样可以正确保存关联,但以前没有必要。
Reservation r = new Reservation();
Night n = new Night();
n.setReservation(r);
r.getNights().add(n);
return dao.save(r);
答案 0 :(得分:1)
根据下面链接中提供的JPA示例,您需要在子级中设置父对象。 你可以在Parent类(child的getter方法)
中完成