Spring Roo Detail Object - PullRequest
       20

Spring Roo Detail Object

0 голосов
/ 05 июля 2018

Я использую Spring roo v2.0. Я создал простое приложение с двумя объектами: Библиотека и Книга. В библиотеке может быть больше книг, поэтому я создал реляцию один-ко-многим. Я использовал следующую команду для создания проекта:

project setup --topLevelPackage com.library 
jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY 
entity jpa --class ~.Library 
field string --fieldName identifier  --notNull
entity jpa --class ~.Book  
field string --fieldName identifier  --notNull
focus --class ~.Library
field set --fieldName book --type ~.Book --mappedBy library --notNull false --cardinality ONE_TO_MANY
repository jpa --all --package ~.repository
service --all --apiPackage ~.service.api --implPackage ~.service.impl 
web mvc setup
web mvc view setup --type THYMELEAF
web mvc controller --all --responseType JSON
web mvc controller --all --responseType THYMELEAF
web mvc detail --all --responseType THYMELEAF

Моя проблема .. Когда я редактирую / показываю детали библиотеки, я хочу показать ее книги, как это происходит на странице списка библиотек после выбора.

И затем ... в этой форме я хотел бы иметь кнопку Добавить, которая создаст книгу для этой библиотеки, а не общую книгу.

Как я могу это сделать? Спасибо за совет

1 Ответ

0 голосов
/ 06 июля 2018

Необходимо вручную настроить представление show.html, связанное с сущностью Library, чтобы включить таблицу с этой информацией.

Для этого вы можете включить в model метода, который обслуживает страницу show полный список книг, используя метод findBooksByLibrary. Примерно так:

@Override
@GetMapping(name = "show")
public ResponseEntity<Library> show(@ModelAttribute Library library, Model model) {
   model.addAttribute("books", getBookService().findByLibrary(library));
   return new ModelAndView("libraries/show");
}

После этого отредактируйте страницу show.html, включающую элемент table, который показывает предыдущие связанные книги:

<table data-th-each="item : ${books}">
 <tr>
   <td data-th-text="${item.identifier}"></td>
 </tr>
</table>

ПРИМЕЧАНИЕ. Помните, что вы можете использовать плагин Datatables JQuery для добавления дополнительных функций к таблице выше.

Надеюсь, это поможет

...