- One-To-Many Relationship
- 在 BookCategory class 設定 One-To-Many :
@Entity
@Table(name = "book_category")
public class BookCategory {
private int id;
private String name;
private Set<Book> books;
@OneToMany(mappedBy = "bookCategory", cascade = CascadeType.ALL)
public Set<Book> getBooks() {
return books;
}
3. 建立BookCategoryRepository 繼承 JpaRepository
import com.hellokoding.jpa.model.BookCategory;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface BookCategoryRepository extends JpaRepository<BookCategory, Integer>{
}
4. 可以使用Repository 已經實作好,常用的CRUD功能
(findOne,findAll,save....)
// save a couple of categories
BookCategory categoryA = new BookCategory("Category A");
Set bookAs = new HashSet<Book>(){{
add(new Book("Book A1", categoryA));
add(new Book("Book A2", categoryA));
add(new Book("Book A3", categoryA));
}};
categoryA.setBooks(bookAs);
BookCategory categoryB = new BookCategory("Category B");
Set bookBs = new HashSet<Book>(){{
add(new Book("Book B1", categoryB));
add(new Book("Book B2", categoryB));
add(new Book("Book B3", categoryB));
}};
categoryB.setBooks(bookBs);
bookCategoryRepository.save(new HashSet<BookCategory>() {{
add(categoryA);
add(categoryB);
}});
// fetch all categories
for (BookCategory bookCategory : bookCategoryRepository.findAll()) {
logger.info(bookCategory.toString());
}
}
5. 完整範例 :
沒有留言:
發佈留言