0
私は問題を抱えています。私はすべての本をリストとして私のデータベースから表示したいのですが、それ以上のものはすべて表示リストの投稿者です。また、私ブック(Thymeleafは本の作者のリストを表示します
<table>
<tr>
<th>Title</th>
<th>Title original</th>
<th>Premiere date</th>
<th>Authors</th>
</tr>
<tr th:each="b : ${model.books}">
<td th:text="${b.title}"></td>
<td th:text="${b.titleOriginal}"></td>
<td th:text="${b.premiereDate}"></td>
<tr th:each="a: ${b.authors}">
<td th:text="${a.name}"></td>
<td th:text="${a.surname}"></td>
</tr>
</table>
:これは私のコントローラメソッドがどのように見えるかです:
@RequestMapping(value="/new",method = RequestMethod.GET)
public ModelAndView newBooks() {
List<Book> books = bookRepository.findAllByOrderByPremiereDateDesc();
Set<Author> authors = new HashSet<>();
for(Book b:books){
authors = b.getAuthors();
}
Map<String, Object> model = new HashMap<String, Object>();
model.put("books",books);
model.put("authors", authors);
return new ModelAndView("books/new","model",model);
}
が、私は自分の著者私の見解ではそれらを適切に表示するとは考えどのようにリンクブックを持っていませんエンティティ)モデルクラス:
@Entity
@Table(name = "book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "book_id")
private int bookId;
@Column(name = "isbn")
private long isbn;
@Column(name = "title")
private String title;
@Column(name = "title_original")
private String titleOriginal;
@Column(name = "premiere_date")
private Date premiereDate;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "book_author", joinColumns = {@JoinColumn(name = "book_id")}, inverseJoinColumns = {@JoinColumn(name = "author_id")})
private Set<Author> authors = new HashSet<Author>();
次のようにしたい場合はどうすればいいですか:Book1:author1、author2、author3など。 Book2:author1、author3など。 –
Nvm、それを持っています!あなたのお手伝いをありがとう:) –