** 環境
・eclipse(spring tool suite 4)
・spring
・thymeleaf
・MySQL
以下のようなテーブルがあります
Table Book
id | book category id | name |
---|---|---|
1 | 3 | rasyomon |
2 | 1 | blue beard |
3 | 2 | it |
Table Book Category
id | category |
---|---|
1 | foreign fairy tale |
2 | foreign horror |
3 | novel |
これを以下の記述で book category id のまま表示することはできました。
Model: Books
Java
1package librarypackage.model; 2 3import java.io.Serializable; 4import javax.persistence.*; 5 6@Entity 7@Table(name="book") 8public class Books implements Serializable { 9 10 @Id 11 private int id; 12 13 @Column(name="book_category_id") 14 private int bookCategoryId; 15 16 private String name; 17 18 ...略 19}
Model: Book category
Java
1package librarypackage.model; 2 3import java.io.Serializable; 4import javax.persistence.*; 5 6@Entity 7@Table(name="book_category") 8public class BookCategory implements Serializable { 9 10 @Id 11 private int id; 12 13 private String category; 14 15 ...略
BooksRepository
Java
1package onepackage.repositories; 2 3import onepackage.model.Books; 4 5import org.springframework.data.jpa.repository.JpaRepository; 6 7public interface BooksRepository extends JpaRepository<Books, Long> { 8 9}
Controller: Books
Java
1package onepackage.controller; 2 3import onepackage.model.Books; 4 5import onepackage.repositories.BooksRepository; 6 7import java.util.List; 8 9import org.springframework.beans.factory.annotation.Autowired; 10import org.springframework.stereotype.Controller; 11import org.springframework.ui.Model; 12import org.springframework.web.bind.annotation.GetMapping; 13 14@Controller 15public class BooksController { 16 17 @Autowired 18 private BooksRepository booksRepository; 19 20 21 @GetMapping("/books") 22 public String getBooks(Model model) { 23 List<Books> books = booksRepository.findAll(); 24 model.addAttribute("booklist", books); 25 return "books"; 26 } 27}
View
HTML
1...略 2<table> 3 <thead> 4 <tr> 5 <th></th> 6 <th>本の名前</th> 7 <th>カテゴリ</th> 8 </tr> 9 </thead> 10 <tbody> 11 <tr th:each="books : ${booklist}"> 12 <td th:text="${books.id}">a</td> 13 <td th:text="${books.name}">b</td> 14 <td th:text="${books.bookCategoryId}">c</td> 15 </tr> 16 </tbody> 17</table> 18...略
こうすると表示は
本の名前 | カテゴリ | |
---|---|---|
1 | rasyomon | 3 |
2 | blue beard | 1 |
3 | it | 2 |
となります。
${booklist}
には category id の情報しかないわけですが、テーブルのカテゴリのところを id でなくて、対応するカテゴリ(の文字列)を表示したいのですが、どういった方法があるでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。