使用queryRaw()的ForeignCollection自动加载

时间:2013-08-07 13:38:40

标签: java android ormlite foreign-collection

我有一个Card类,其中有一个急切的ForeignCollection。我必须使用Dao.queryRaw()查询此类的实例,因为我的SELECT过于复杂,无法使用简单的QueryBuilder构建(请参阅我的other question)。这就是我使用RawRowMapper查询和构建对象的方法:

GenericRawResults<String[]> rawResults = getCardDao().queryRaw(statement);
List<Card> results = new ArrayList<Card>();

for (String[] row : rawResults) {
    results.add(getCardDao().getRawRowMapper().mapRow(rawResults.getColumnNames(), row));
}

rawResults.close();

不幸的是,当我尝试在我的对象上获取ForeignCollection时,它返回null。如果我使用简单Dao.queryForFirst查询对象,ForeignCollection就可以了。

1 个答案:

答案 0 :(得分:1)

我今天遇到了同样的问题。 我的解决方案是将某事称为

dao.refresh(<Card object>)

对于queryRaw函数返回的每个对象(并累积到“结果”列表中)。 这对我来说很有用,从填充外来集合的DB重新加载对象。