【发布时间】:2014-11-17 15:16:57
【问题描述】:
我在使用 Ebean 保存对象列表时遇到问题。
我有一个三班。最后一个包括两个儿童班。
@Entity
@Table(name="A")
public class A extends Model {
@Id
public String idA;
@OneToMany(cascade=CascadeType.ALL, mappedBy = "currentA")
private List<B> listOfB;
}
二等乙:
@Entity
public class B extends Model {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Long idB;
@ManyToOne
@JoinColumn(name = "idA")
private A currentA;
@OneToMany(cascade=CascadeType.ALL, mappedBy = "currentB")
public ArrayList<C> lstOfC;
public B(List<C> lstC) {
this.lstOfC=lstC;
}
}
最后一个:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("X")
public class C extends Model {
@ManyToOne
@JoinColumn(name = "idB")
private B currentB;
private setcurrentB(int currentB) {
this.currentB=currentB;
}
}
我面临的问题是我需要创建一个 C 对象 (lstOfC) 的列表,但是当我将元素放入列表时我不知道 currentB 的值。 我需要稍后设置(使用设置器)这个值,然后将其保存到数据库中。
但是当我尝试这样做时,C 对象的列表在 A 中的 B 列表中为空。
ArrayList<C> lstC=new ArrayList<C>();
c1=new C();
c2=new C();
B=new B(lstC);
for (C c: lstC) {
c.setcurrentB(1);
Ebean.save(c);
}
【问题讨论】:
标签: java playframework-2.0 ebean