Ich habe Domain-Modell folgende:Grails many-to-many - alle Objekte finden, die bestimmte Liste von Objekten enthalten
class Recipe {
String title
static hasMany = [ ingredients : Ingredient ]
}
class Ingredient {
String ingredient
static hasMany = [ recipes : Recipe ]
static belongsTo = Recipe
}
Grails die Tabelle Recipe_Ingredients mit dem Bestandteil ID und Rezept-ID erstellt.
Wie bekomme ich eine Liste von Rezepten mit einer Liste von Zutaten?
def egg = new Ingredient(ingredient:"Egg")
def milk = new Ingredient(ingredient:"Milk")
def flour = new Ingredient(ingredient:"Flour")
def apple = new Ingredient(ingredient:"Apple")
def banana = new Ingredient(ingredient:"Banana")
def mango = new Ingredient(ingredient:"Mango")
def pizza = new Recipe(title:"Pizza")
pizza.addToIngredients(egg)
pizza.addToIngredients(milk)
pizza.addToIngredients(flour)
pizza.save()
def salad = new Recipe(title:"Fruit Salad with milk")
salad.addToIngredients(apple)
salad.addToIngredients(banana)
salad.addToIngredients(mango)
salad.addToIngredients(milk)
salad.save()
zum Beispiel:
[mango, milk] return me salad
[milk] return me salad and pizza
[milk, flour] return me pizza
aus Neugier, haben Sie 'Recipe.findAllByIngredientsInList ([Milch, Mango]) versucht' – injecteer
OT, die "Pizza mit Ei und Milch" sein sollte;) – cfrick