Я использую Spring HibernateTemplate, OpenSessionInViewFilter (на самом деле я расширил этот класс и создал свой собственный, чтобы переключиться в режим FLUSH.AUTO) и Mysql для реализации гибернации связи многих со многими.Однако, когда я сохраняю объект, соответствующие значения таблицы многие-ко-многим не вставляются.Кто-нибудь может мне помочь?Спасибо.
здесь приведено сопоставление xml
<hibernate-mapping>
<class name="com.intelli.epub.domain.Content" table="CONTENT">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="native" />
</id>
<property name="title" type="java.lang.String">
<column name="TITLE" />
</property>
<property name="text" type="java.lang.String">
<column name="TEXT" />
</property>
<many-to-one name="writer" class="com.intelli.epub.domain.User" fetch="join">
<column name="WRITER" />
</many-to-one>
<property name="createdDate" type="java.util.Date">
<column name="CREATEDDATE" />
</property>
<set name="menus" table="MENU_CONTENT" cascade="all">
<key column="CONTENT_ID"></key>
<many-to-many column="MENU_ID" class="com.intelli.epub.domain.Menu"/>
</set>
</class>
</hibernate-mapping>
, другое:
<hibernate-mapping>
<class name="com.intelli.epub.domain.Menu" table="MENU">
<id name="id" type="java.lang.Long">
<column name="ID" />
<generator class="native" />
</id>
<property name="text" type="java.lang.String">
<column name="TEXT" />
</property>
<set name="contents" table="MENU_CONTENT" inverse="true">
<key column="MENU_ID"></key>
<many-to-many column="CONTENT_ID" class="com.intelli.epub.domain.Content"/>
</set>
</class>
и при сохранении следующим образом:
Content content = new Content();
content.setCreatedDate(new Date());
content.setWriter(some user here);
content.setText("some text here");
Menu menu1 = new Menu("menu1");
Menu menu2 = new Menu("menu2");
Set<Menu> menus = new HashSet();
menus.add(menu1);
menus.add(menu2);
content.setMenus(menus);
contentDao.saveOrUpdate(content);
Теперь menu1 и menu2 будут сохранены в таблице MENU, однако с таблицей MENU_CONTENT ничего не происходит;Таблица MENU_CONTENT не имеет поля первичного ключа, вместо этого MENU_ID и CONTENT_ID являются первичным ключом вместе.Я не знаю, в этом ли проблема.Пожалуйста, помогите мне.Спасибо.