gpt4 book ai didi

android - 如何将我的 getEmptyForeignCollection() 对象与我的父对象链接起来?

转载 作者:行者123 更新时间:2023-11-30 04:33:10 27 4
gpt4 key购买 nike

我想保留一个包含两个 foreignCollection 的对象。但是当我尝试查询该对象时,我的 foreignId 始终为空。我已经阅读了这个答案,但它并没有真正帮助我:Collections in 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 对象没有链接。

这是我的两个类:

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;
...
}

最佳答案

您的 queryForAll() 没有返回任何对象,因为您的 VOAccessPoint 实例都没有将它们的 apForeignPerception 字段设置为 perception。使用 ForeignCollection 添加 VOAccessPoint 对象将它们添加到 DAO不会自动分配它们的 apForeignPerception 字段。

你应该这样做:

...
Collection<VOAccessPoint> points = wifiLocalizer.getCurrentScanResultMap();
for (VOAccessPoint point : points) {
point.setApForeignPerception(perception);
}
fAp.addAll(points);
...

我知道您可能认为这会自动处理,但在将它们添加到 ForeignCollection 时,perception 甚至没有分配。我怀疑 ORMLite 缺少功能在这里或至少是一个更好的异常(exception)。

关于android - 如何将我的 getEmptyForeignCollection() 对象与我的父对象链接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334901/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com