我正在使用 Kundera 在 MongoDB 中进行持久化。在我的模型中,我有具有一组变量的实体类,其中一些是另一个实体类的列表,等等。例如,一个名为 RecordVersion 的实体类具有实体类 Record 的列表,而 Record 又具有实体类 AuxiliarData 的列表。像这样的东西:RecordVersion > Record > AuxiliarData > References
@Entity
@Table(name = "recordVersion", schema = "TestDB@records")
public class RecordVersion {
@Id
@Column(name="idRecordVersion")
private String idRecordVersion;
//others variables..
@OneToMany (cascade={CascadeType.ALL}, fetch=FetchType.EAGER")
@JoinColumn(name="idRecordVersion")
private List<Record> record = Lists.newArrayList();
供记录
@Entity
@Table(name = "Record", schema = "TestDB@records")
public class Record {
@Id
@Column(name="idRecord")
private String idRecord;
//others variables..
@OneToMany (cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@JoinColumn(name="idRecord")
private List<AuxiliarData> auxiliarData = Lists.newArrayList();
对于辅助数据
@Entity
@Table(name = "AuxiliarData", schema = "TestDB@records")
public class AuxiliarData {
@Id
@Column(name="idAuxiliarData")
private String idAuxiliarData;
//others variables..
@OneToMany (cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@JoinColumn(name="idAuxiliarData")
private List<References> references = Lists.newArrayList();
我可以持久保存在 mongoDB 中,RecordVersion 的完整数据,所有嵌套直到引用,但是,我无法更新 RecordVersion 的该记录,例如在 Mongo 集合中为特定 RecordVersion 添加更多记录.
我尝试使用 em.merge(someRecordVersion),但没有奏效。