1

2 つのforeignCollections を持つオブジェクトを永続化したいと考えています。しかし、オブジェクトを照会しようとすると、foreignId は常に null です。私はすでにこの回答を読んでいますが、それは本当に役に立ちません: ORMLiteのコレクション

VOPerception perception = new VOPerception();
perception.setOrientation(daoOrientation.createIfNotExists(
    orientationLocalizer.getCurrentOrientation()));
ForeignCollection<VOAccessPoint> fAp =
    daoPerception.getEmptyForeignCollection("accessPoints");
fAp.addAll(wifiLocalizer.getCurrentScanResultMap());    
perception.setAccessPoints(fAp);
daoPerception.create(perception);
List<VOPerception> list = daoPerception.queryForAll();

ここでデータは正しく保存されますが、VOAccessPoint オブジェクトには親の VOPerception オブジェクトとのリンクがありません。

ここに私の2つのクラスがあります:

public class VOPerception {
    @DatabaseField(generatedId=true)
    private int per_id; 

    @ForeignCollectionField(eager=true)
    ForeignCollection<VOAccessPoint> accessPoints;
    ...
}

public class VOAccessPoint{
    @DatabaseField(generatedId=true)
    private int ap_id;

    @DatabaseField(foreign=true,columnName="apForeignPerception_id")
    private VOPerception apForeignPerception;
    ...
}
4

2 に答える 2

0

を使用することをお勧めしますassignEmptyForeignCollection(Obj parent, fieldName)。これにより、新しい外部コレクションが作成され、追加するすべてのオブジェクトにadd(Obj element)は親の値が自動的に設定されます。

于 2014-04-03T20:24:33.747 に答える