我有一个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
没问题。
最佳答案
我今天也遇到了同样的问题。 我的解决方案是将某些内容称为
dao.refresh(<Card object>)
对于 queryRaw 函数返回的每个对象(并累积到“结果”列表中)。 这对我来说很有效,从数据库中重新加载带有填充的外部集合的对象。
关于java - 使用queryRaw()自动加载ForeignCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104945/