假设我们将下面的对象存储在hazelcast中。
class A implements Serializable{
public int id;
public List<B> incomingBs;
public A(int x){ this.id=x; }
}
class B implements Serializable{
public int id;
public List<A> outgoingAs;
public B(int x){ this.id=x; }
}
A a1=new A(1);
A a2=new A(2);
B b1=new B(1);
B b2=new B(2);
a1.incomingBs.add(b1);
a1.incomingBs.add(b2);
b1.outgoingAs.add(a1);
b1.outgoingAs.add(a2);
然后我将a1
和b1
放到了淡褐色地图上。 hazelcast如何存储这样的嵌套结构。如果我从hazelcast中提取数据:a1
,我是否可以获得嵌套b1
?如果是,那么我应该可以访问包含a1
的{{1}},然后{ {1}}有b1
...然后..... hazelcast是否有可能为这个无限的嵌套做序列化工作?就像无限递归一样..
为了使问题更简单,如果我将上面的数据存储在淡褐色地图中,我可以获得原始数据与我刚刚推送的关系吗?
答案 0 :(得分:3)
只要一切都是Serializable,是的,它就像魔术一样:)
只在不需要此行为的字段上使用transient
。