Graal critères de projections - obtenir des lignes comte
J'ai de l'Hôtel entité:
class Hotel {
City city
}
Maintenant, j'ai besoin de compter des hôtels de la ville.
Il pourrait être fait de cette façon:
def hotels = Hotel.findAllByCity(city)
def cnt = hotels.size()
Mais c'est très sale. Il semble qu'avec les critères qu'il serait mieux, mais je n'ai aucune idée de comment le mettre en œuvre...
OriginalL'auteur Oleksandr | 2010-02-24
Vous devez vous connecter pour publier un commentaire.
Il y a des dynamiques de compteurs ainsi que d'intermédiation sur des objets de domaine:
Plus de détails dans la guide de l'utilisateur, bien sûr
OriginalL'auteur Dave Bower
Dave est un droit que vous pouvez utiliser le countBy* méthodes de comptage simple. Si vous avez besoin de plus de deux critères que vous aurez à revenir à la critères d'api, HQL ou SQL. Il est très fréquent d'avoir besoin de plus de deux critères en particulier avec une active et l'évolution de la base de code.
Voici un exemple de la façon dont vous utilisez le Critères d'api faire les projections:
Sinon (plus élégamment), vous pouvez même utiliser des Critères#compter comme suit:
Juste par souci d'exhaustivité:
Un test d'intégration (à l'aide de la build-test-données plugin)
Je crois que vous pouvez faire: de l'Hôtel.createCriteria().le comte { gt("étoiles", 2); eq("ville", ville); eq("supprimé", false) } mais je n'ai pas encore essayé.
essayé et testé... ça fonctionne! merci!
un très bon exemple! merci!
Que faire si je voulais comprendre ce que les villes n'avaient plus qu'un hôtel?
OriginalL'auteur Colin Harrington