Проблема с аннотацией @OneToMany с Spring Roo

Я пытаюсь использовать Spring Roo для создания объектов с однонаправленным отношением @OneToMany. Вот что я пробовал:

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

Это создает ожидаемые сущности и таблицы базы данных (включая таблицу ссылок). Сущность Father создается со следующей аннотацией, которая соответствует спецификации JPA:

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

Но когда я перехожу на страницу администратора, созданную Roo, и нажимаю Create Father, я нахожу следующее сообщение:

Создать отца

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

Это похоже на ошибку в Roo. Кто-нибудь нашел обходной путь? Или у меня тут ошибка?


person Eric Wilson    schedule 07.07.2010    source источник
comment
Просто из любопытства: работает ли Spring roo как положено??? Удовлетворяет ли он ваши потребности ???   -  person Arthur Ronald    schedule 08.07.2010
comment
До сих пор я очень доволен Roo, но я использовал его всего несколько недель, и я довольно неопытен, поэтому у меня не было особых ожиданий.   -  person Eric Wilson    schedule 09.07.2010


Ответы (2)


Хорошо, вот обходной путь: в файле fathers/create.jspx Roo создает следующую строку:

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

Это должно быть заменено на:

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

И это должно работать.

person Eric Wilson    schedule 07.07.2010
comment
спасибо .. Я сам пробовал .. но это не сработало .. Я заглянул в spring roo jira, но не нашел в нем никакой ошибки .. - person Shekhar; 08.07.2010
comment
Это работает только для отображения детей. Если вы обновляете или создаете объект, ссылки не сохраняются. Что с этим делать? - person Hedge; 13.10.2011
comment
@Hedge Мне жаль слышать, что это не было исправлено до сих пор, 15 месяцев спустя. Я понятия не имею, что делать, и я прекратил использовать Roo (из-за смены работы) вскоре после публикации этого. - person Eric Wilson; 13.10.2011
comment
Да, получить конкретную помощь по Ру невозможно. Все, что я слышу, это отказаться от контроллеров и представлений и делать свои собственные вещи, но они близки к тому, что я на самом деле хочу, поэтому в этом нет смысла. - person Hedge; 13.10.2011

Да, это баг, наверное!

У меня была такая же команда. Это работало с более старой версией Roo, но я попробовал старый скрипт резервного копирования. Это больше не работает.

person Kai Wähner    schedule 05.09.2011