8
votes

3 Réponses :


10
votes

Découvrez ce qui ne va pas

La première chose à faire est de savoir quel (s) champ (s) cause (s). Probablement ce sera n'importe quel champ dans une classe de domaine em> déclarée comme une liste code>. P>

Dans mon cas, il était facile de les trouver, car le projet est sur un stade très précoce et il n'y a pas trop de domaines. p>

Cependant, j'ai trouvé un solution possible pour réduire le jeu de câlins possibles. p>

La partie intéressante est la suivante: P>

Qu'est-ce qui suce la seule bonne façon de comprendre où ils sont consiste à définir un point d'arrêt sur la ligne 436 de AbstractGarailDomainbindin et regardez l'état des choses p> blockQuote>

Fixation du problème h2>

Lorsque vous trouvez les champs inappropriés, il est temps de mettre en œuvre une solution de contournement. P>

Supposons que notre coupable était List Auteurs dans une classe de domaine comme: p> xxx pré>

Nous devons nous débarrasser de la liste, bien sûr, la solution serait donc quelque chose comme: p>

def book = new Book()
book.setAuthors([1, 2, 3])


3 commentaires

Eh bien, je ne considère pas vraiment une solution de contournement. Je ne pense tout simplement pas qu'u la liste en tant que champ d'une classe de domaine est une bonne pratique du tout. Mais bien sûr, je suis ouvert à toutes les suggestions. S'il vous plaît, fournissez le vôtre.


Pourquoi est-ce une solution de contournement si Grails dit qu'il prend en charge la liste des types primitifs? greils.github.io/gails-doc/latest/Guide/ ...


Eh bien, GRAVES fournit quelques fonctionnalités qui ne sont en fait pas les meilleures de l'utilisation du monde réel, e.x. Hasmany (en raison de la performance) ou des paramètres de demande de liaison directs aux objets de domaine (en raison de la sécurité). Le fait que c'est soutenu ne signifie pas que c'est la meilleure pratique ...



-3
votes

Essayez de remplacer l'interface problématique avec quelque chose qui est une classe réelle, par exemple ArrayList


0 commentaires

10
votes

Vous aussi besoin de spécifier la carte Hasmany . Il semble qu'il ne soit pas plus suffisant d'ajouter list ListName Dans votre classe de domaine

Vous devez également ajouter xxx

au moins cela fonctionne pour moi. < / p>


0 commentaires