我省略了一些代码(包声明、导入、其他字段) 为了简短。 我这里有简单的一对多关系。 到目前为止一切正常。
@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
class Restaurant implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Key id
@Persistent(mappedBy = "restaurant")
List<RestaurantAddress> addresses = new ArrayList<RestaurantAddress>()
}
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
class RestaurantAddress implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Key id
@Persistent
Restaurant restaurant
}
现在我需要从数据库获取(选择)所有餐厅:
def getRestaurantsToExport(final String dst, final int count) {
String field = restaurantExportFields[dst]
return transactionExecute() { PersistenceManager pm ->
Query q = pm.newQuery(Restaurant.class)
q.filter = "$field == null"
q.setRange(0, count)
return q.execute()
}
}
但是有一个问题 - 查询给了我 12 家餐厅(如数据库中所示)但是 每个餐厅都有 0 个地址,但在数据存储中每个餐厅都有 至少 2 个地址。
有人遇到同样的问题或者知道解决办法吗?
最佳答案
您确定地址没有延迟加载吗?只是猜测......是否有某种方法可以强制“急切”加载对象
关于java - 一对多关系。从数据存储中选择对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499140/