0
我想为我的食谱实现一个简单的分类系统。JDO关系 - App Engine
这里是我的食谱实体:
@PersistenceCapable
public class Recipe {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private List<Category> categories;
public Recipe(List<Category> categories) {
this.categories = categories;
}
...
}
而且我类别实体:
@PersistenceCapable
public class Category {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String name;
public Category(String name) {
this.name = name;
}
...
}
现在你可以看到关联很简单。当我创建一个Recipe
时,我确保我用类别列表构造它。这很棒。在我的网站上,我可以迭代一个Recipe
列表(或其他),然后只需执行.getCategories()
即可检索我需要的类别。
但是,假设我想检索数据存储中的所有类别,并且当我点击一个类别时,我希望能够检索该类别的所有配方。最简单的方法是什么?
显示我拥有的所有类别:select from Category.class group by name
。 但是,如何检索给定类别下的所有食谱?我的设计是否对JDO有缺陷?
'WHERE category =:category' - 我的'Recipe'类没有'category'字段。 – 2011-03-15 07:50:01
从mydomain.Recipe中选择WHERE categories.contains(:category)返回包含特定Category的所有Recipes。 – DataNucleus 2011-03-15 09:52:20
好的,但':category'是什么?一个类别对象?类别密钥? – 2011-03-15 11:19:53