Mig*_*iro 7 postgresql playframework ebean playframework-2.4
我有一个使用与PostgreSQL数据库集成的eBean的Play2应用程序.
基本上我有一个模型TripRequest作为Passengers 的列表.用例是"一次旅行有几名乘客".
对于TripRequest我有这个模型:
@Entity
public class TripRequest extends Model {
enum Status {
OPEN,
PROCESSING,
CLOSED,
CANCELLED
}
@Id
private UUID id;
@ManyToOne
@Column(nullable = false)
private User owner;
@OneToMany(mappedBy = "tripRequest")
@JoinTable(name = "trip_passengers")
private List<Passenger> passengers;
(... other fields, getters and setters ...)
Run Code Online (Sandbox Code Playgroud)
这是我的Passenger模特:
@Entity
@Table(name = "trip_passenger")
public class Passenger extends Model {
@ManyToOne(cascade = CascadeType.ALL)
private TripRequest tripRequest;
@Column(nullable = false)
private String name;
(... other fields, getters and setters)
Run Code Online (Sandbox Code Playgroud)
因此,我创建了一个新实例TripRequest,Passenger并将该列表设置为TripRequest实例的乘客.问题是,当我tripRequest.save()在主实例中执行所有操作时(TripRequest)得到保存但关系不是(所以乘客列表).
我的文档和例子阅读,一切都指向我到CascadeType.ALL的@ManyToOne注释,但没有"运气"的说法
编辑:如果您认为完整的课程有用,请告诉我,因为我可以发布它们.刚决定保持这个例子简短,所以我修剪它们.
我认为你应该站在tripRequest一边Passenger(因为这个类实际上拥有这种关系),然后才保存它。像这样的东西:
for(Passenger p : passengers){
p.tripRequest = this;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
281 次 |
| 最近记录: |