我需要一些JDO查询的帮助。
我有以下实体:
配方:
@PersistenceCapable
class Recipe{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long key;
...
@Persistent(mappedBy = "recipe")
private List<RecipeIngredient> ingredients
}
recipeIngredient:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
class RecipeIngredient implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
Integer amount
@Persistent
Key unit
@Persistent
Key ingredient
@Persistent
Recipe recipe
成分:
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
class Ingredient implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
String name
配方可以有几个配方成分,它们包含实际成分,成分的量和单位。
我想通过仅含有给定成分的成分获得所有食谱而不是更多。
目前我这样做:
我可以使用查询执行此操作吗?也许类似的东西?
答案 0 :(得分:0)
尝试类似......
select r from Recipe r where ingredients.contains(ri) && (ri.ingredient.name.matches(:searchTxt))
另请查看:http://www.datanucleus.org/servlet/forum/listthreads?forum=9
我不使用Google App Engine,但我确实大量使用DataNucleus,我相信DataNucleus是App Engine使用的JDO的实现。
让我知道这是如何在App Engine上运行的,因为我在我的应用程序中一直这样做。