我是Apache Ignite的初學者。我有3個java類ClassA,ClassB和ClassC。如何在Apache Ignite中創建對象關聯?
ClassA{
int idA; //unique
String stringA;
public ClassA(){}
public ClassA(int idA,String stringA){
this.idA=idA;
this.stringA=stringA;
}
public int getidA(){
return idA;
}
public String getstringA(){
return stringA;
}
}
ClassB{
int idB; //unique
String stringB;
public ClassB(){}
public ClassB(int idB,String stringB){
this.idB=idB;
this.stringB=stringB;
}
public int getidB(){
return idB;
}
public String getstringB(){
return stringB;
}
}
ClassC{
int idC,idB; //idC unique. idB from ClassB
String stringC;
public ClassC(){}
public ClassB(int idB,int idC,String stringC){
this.idB=idB;
this.idC=idC;
this.stringC=stringC;
}
public int getidC(){
return idC;
}
public String getstringC(){
return stringC;
}
}
讓我舉個例子。我希望ClassA處於複製模式,並且需要分區模式下的B & C. ClassC與ClassB相關。 ClassB的id存在於ClassC中(充當外鍵)。假設我有3個節點,30個ClassA對象,30個ClassB對象和30個ClassC對象。它們分佈在如下的節點中;
Node 1 => ClassA->30, ClassB->10,ClassC->8
Node 2 => ClassA->30, ClassB->5,ClassC->3
Node 3 => ClassA->30, ClassB->15,ClassC->19
與ClassB相關的ClassC的對象應該出現在同一個節點中。我知道有一些機制AffinityKey,但我不知道如何實現這一點。
已經穿過它了。發佈了問題,因爲我無法解決它。 –
您應該將@AffinityKeyMapped註釋附加到ClassC.idB字段。這裏是javadoc:https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/affinity/AffinityKeyMapped.html – Dmitriy