【发布时间】:2015-07-14 15:10:44
【问题描述】:
我有两台应用服务器和两台名为 Xapp Xdbase - Yapp Ydabse 的数据库服务器。在 Xapp 和 Yapp 使用休眠。我需要通过 web 服务同步数据。用一个简单的对象图
@Entity
@Table(name="A_table")
public class A extends PersistentObject
{
@Column(name="user")
private String user;
@ElementCollection()
@Enumerated(EnumType.STRING)
@Column(name="b_column")
@CollectionTable(name="B_table")
@LazyCollection(LazyCollectionOption.FALSE)
private List<B> bList= new Arralist<B>();
/* Here comes getter and setter for user and bList */
}
public enum B {
One,Two,Three
}
PersistentObject 是可序列化的并且具有样板代码。
XApp 和 YApp 有这些类。
我在 XApp 中创建了一个新的 A 对象(我们将其命名为 Ainstance),其中包含一个包含两个 B 对象的 B 列表。反序列化 A 并使用 Yapp 的网络服务将其发送给 Yapp。在 Yapp,我反序列化传入的 A 并使用存储库 repo.saveOrUpdate(Ainstance);一切都很好。 Ydbase中的B_table有2条记录。
然后在 XApp 中使用旧的 Ainstance,我将新的 B 添加到列表中并更改用户。然后再次发送A。它在 Yapp 上完美地反序列化了 bList 中的 3 B 记录。但是当调用 repo.saveOrUpdate(Ainstance) 时,用户更改适用于 dbase 但 B_table 有 2 条记录。没有错误,什么都没有。
我尝试合并 Ainstance @YApp 然后更新失败。列表有什么问题?我尝试了一个包含类类型的列表,但它们也没有持续存在。什么错误?
【问题讨论】:
标签: java hibernate web-services