2010-07-07 2 views
4

J'essaie d'utiliser Spring Roo pour générer des entités avec une relation unidirectionnelle @OneToMany. Voici ce que j'ai essayé:Problème avec l'annotation @OneToMany avec Spring Roo

entity --class ~.family.Child 
field string --fieldName name 
controller scaffold ~.web.ChildController 
entity --class ~.family.Father 
field string --fieldName name 
field set --fieldName children --element ~.family.Child --cardinality ONE_TO_MANY 
controller scaffold ~.web.FatherController 
perform package 

Ce produit les entités attendues et des tables de base de données L'entité Father est générée avec l'annotation suivante, qui est conforme à la spécification JPA (y compris une table de lien.):

@OneToMany(cascade = CascadeType.ALL) 
private Set<family.Child> message = new java.util.HashSet<family.Child>(); 

Mais quand je vais à la page d'administration généré Roo, et cliquez sur Create Father, je trouve le message suivant:

Créer Père

Name:  (field to enter name) 
Children: This relationship is managed from the Father side. 

Cela ressemble à un bogue dans Roo. Est-ce que quelqu'un a trouvé une solution de rechange? Ou ai-je une erreur ici?

+0

Juste pour la curiosité: Est-ce que Spring Roo fonctionne comme prévu ??? Est-ce que cela répond à vos besoins ??? –

+0

Jusqu'à présent, je suis très content de Roo, mais je ne l'utilise que depuis plusieurs semaines, et je n'ai pas assez d'expérience, donc je n'avais pas beaucoup d'attentes. –

Répondre

6

OK, voici une solution: Dans le fichier fathers/create.jspx, Roo génère la ligne suivante:

<field:simple field="children" id="c:family.Father.children" messageCode="entity.reference.not.managed" 
messageCodeAttribute="Child" z="dMKrUOiCeYNub4vNayuiWJ99s1k="/> 

Cela devrait être remplacé par:

<field:select field="children" id="c:family.Father.children" itemValue="id" 
items="${children}" multiple="true" path="/children"/> 

Et cela devrait fonctionner.

+0

merci..Je m'y essayais..mais ça ne marchait pas..J'ai regardé au printemps roo jira mais je n'ai pas trouvé de bug pour ça .. – Shekhar

+0

Content de pouvoir aider. –

+0

Cela fonctionne uniquement pour afficher les enfants. Si vous mettez à jour ou créez l'objet, les références ne sont pas sauvegardées. Que faire à ce sujet? – Hedge

0

Oui, c'est un bug, probablement!

J'avais la même commande. Cela a fonctionné avec une ancienne version de Roo, mais j'ai essayé un ancien script de sauvegarde. Ça ne marche plus.

Questions connexes