java - 一对多关系。从数据存储中选择对象

标签 java google-app-engine groovy jdo

我省略了一些代码(包声明、导入、其他字段) 为了简短。 我这里有简单的一对多关系。 到目前为止一切正常。

@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/

相关文章:

java - 如何使用 ObservableLists 在 Javafx 中创建条形图或折线图

Java 位集示例

google-app-engine - __BlobFileIndex__ 填充数据存储配额

google-app-engine - 通过 https 使用 GWT 和 GAE 进行安全身份验证?

jenkins - Jenkins 共享库中未调用构造函数

shell - Shebang 和 Groovy

java - 如何使用 jar 文件运行 mvn cucumber 测试?

java - Spring依赖注入(inject),使用@Named还是@Resource?

java - Groovy 异常后重试

java - 如何使用 Google App Engine 的 SQL 到 NoSQL 数据存储重写应用程序