J'essaie de déterminer comment trouver/récupérer/charger des objets efficacement en termes de.) Minimisant les appels à la base de données et b.) Garder le code comme élégant/aussi simple que possible (ie ne pas écrire hql etc.).Récupérer efficacement des objets avec une ou plusieurs références dans Grails en utilisant GORM
Supposons que vous avez deux objets:
public class Foo {
Bar bar
String badge
}
public class Bar {
String name
}
Chaque Foo possède un bar et un badge. Supposez également que tous les badges sont uniques dans une barre. Donc, si un Foo a un badge "4565" il n'y a pas d'autres Foos qui ont le même badge # ET la même barre.
Si j'ai un ID de barre, comment puis-je récupérer efficacement le Foo sans sélection préalable de la barre?
Je sais que je peux le faire:
Foo.findByBadgeAndBar("4565", Bar.findById("1"))
Mais cela semble provoquer une sélection sur la table Bar suivie d'une sélection sur la table Foo. En d'autres termes, je dois produire l'équivalent Grails/Hibernate/GORM des éléments suivants:
select * from foo where badge="4565" and bar_id="1"
semble bon, Cela devrait fonctionner. Je vais essayer. merci beaucoup. – bebeastie