1. 程式人生 > >hibernate多對多,中間表無資料問題

hibernate多對多,中間表無資料問題

1.兩個實體類:類目,屬性

2.關係多對多

3.類目Category類

 @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name="category_items",//第三張表名
            [email protected](name="cate_id"),//當前類在兩張表關係表中的欄位名
            [email protected](name="item_id")//另一個類在第三張表中的欄位
    )

4.屬性Item類
//多個屬性可能屬於多個類目
    @ManyToMany(targetEntity = Category.class,mappedBy = "items" ,cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    Set<Category> categories ;
5.此處屬性由類目維護(mappedby)

6.儲存測試資料

Category category = new Category();
        category.setName("耳環");
        Item item = new Item();
        item.setName("sq");
        Set<Category> categories = new HashSet<Category>();
        categories.add(category);
        item.setCategories(categories);
        Set<Item> items = new HashSet<Item>();
        items.add(item);
        category.setItems(items);
        sessionFactory.getCurrentSession().save(category);
        sessionFactory.getCurrentSession().flush();