我有一个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
就可以了。
答案 0 :(得分:1)
我今天遇到了同样的问题。 我的解决方案是将某事称为
dao.refresh(<Card object>)
对于queryRaw函数返回的每个对象(并累积到“结果”列表中)。 这对我来说很有用,从填充外来集合的DB重新加载对象。