Google app engine 通过设置JPA中映射实体的参数进行查询
我的项目具有一对多关系中的两个实体用户和项。paent用户实体由条目实体中的字段“owner”映射,该字段用Fetchtype.LazyLoad注释 项目实体:Google app engine 通过设置JPA中映射实体的参数进行查询,google-app-engine,jpa,google-cloud-datastore,Google App Engine,Jpa,Google Cloud Datastore,我的项目具有一对多关系中的两个实体用户和项。paent用户实体由条目实体中的字段“owner”映射,该字段用Fetchtype.LazyLoad注释 项目实体: Item{ //other fields.. @Manytoone(@FetchType=LazyLoad) User owner; //getters and setters... } 现在我正在查询父用户实体的性别设置为女性的项目,如下所示: String queryString="Se
Item{
//other fields..
@Manytoone(@FetchType=LazyLoad)
User owner;
//getters and setters...
}
现在我正在查询父用户实体的性别设置为女性的项目,如下所示:
String queryString="Select i from Item AS i where i.owner.gender='Female'"
Query q=QueryFactory.createQuery(queryString);
List<Item> result=q.getResultList();
String queryString=“从项目中选择i作为i.owner.gender='Female'所在的i”
Query q=QueryFactory.createQuery(queryString);
List result=q.getResultList();
我的问题是这样的查询是否可能?如果可能,注释LAZYLOAD是否会对获取结果产生任何影响,因为据我所知,在加载项实体时不会隐式加载所有者字段。GAE不允许联接,如您在评论中所述。如果你尝试,你会得到一个错误
应该使用标准log4j(internet搜索其文档)或java.util.logging启用日志。它们允许类路径根目录中的配置文件来配置记录的数量。根据配置,可以将内容记录到控制台或文件中测试时会发生什么?打开SQL日志以查看执行了哪些SQL查询,将
=Female
更改为='Female'
,使用调试器一步一步地执行代码,并查看每个步骤加载的内容。我还没有尝试过。顺便问一下,我如何打开SQL日志?我的项目是google app engine项目,我使用的是Eclipse IDE。你是说,GAE/数据存储?还是GAE/CloudSQL?前者不允许在查询中加入。我正在使用GAE/Datastore。因此,我的问题代码无法工作?那么,您应该用GAE标记您的问题。JPA在GAE上受到高度限制,通常由JPA支持的查询中的联接不在GAE上。