hibernate多对多保存(中间表不更新) 我没仔细看,但是从你测试方法看的话,有点问题,如果在hibernate中把2个类关联了的话,那重要配置好关联,保存只要调用一个的save就可以,没有必要去调用2次的。具体的关联保存,可以去google一下,能找到范例的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴配置文件出来吧 应该是你没有配置级联更新 需要设置cascade属性更新一个类a对象 然后把另一类b的对象都塞入a的set集合中, 更新a hibernate根据map配置文件解析成sql 执行 插入数据 试一下改成以下:测试: /*菜单加菜单项*/ public void testMenuAddItem() { Session sn = HibernateUtil.getSession(); Transaction tx = sn.beginTransaction(); Menu menu = new Menu(); menu.setName("文件"); MenuItem menuItem = new MenuItem(); menuItem.setName("打开"); menu.getMenuItems().add(menuItem); menuItem.getMenus().add(menu); sn.save(menu); tx.commit();Transaction tx = sn.beginTransaction(); sn.clear(); sn.save(menuItem); tx.commit(); sn.close(); } 其它地方不改,只要把Menu或是MenuItem中的集事项的inverse改为false,对于inverse 的作用可以查一下资料! 5楼正解,inverse一个TRUE 一个FALSE,全TRUE就不插入,全FALSE就插入2次 我也遇到过,但是像5楼那样还是不行Role 类 private Set<Menu> menus; @Cascade({org.hibernate.annotations.CascadeType.ALL}) @ManyToMany(mappedBy="roles",fetch = FetchType.EAGER) @Sort public Set<Menu> getMenus() { return menus; }menu 类@ManyToMany @JoinTable(name="tunshi_bi_menus_roles", joinColumns={@JoinColumn(name="menu_id")}, inverseJoinColumns={@JoinColumn(name="role_id")}) @Cascade({org.hibernate.annotations.CascadeType.ALL})不知道哪错 多文件处理,性能提升~~~~ ibatis 调用存储过程出现问题 SessionFactory 能设为单例吗 数据挖掘问题 文本编辑器怎么嵌套在ssh框架中。 分页遇到莫名问题!! JBoss集群为什么性能还下降了? hello world失败! 想找人合作开发一套blog系统,不知道哪位有兴趣 初学者问题,高手进来看看吧 tomcat可以启动但无法访问欢迎页面 关于el 表达式获取集合的问题
更新一个类a对象 然后把另一类b的对象都塞入a的set集合中, 更新a
hibernate根据map配置文件解析成sql 执行 插入数据
测试: /*菜单加菜单项*/
public void testMenuAddItem()
{
Session sn = HibernateUtil.getSession();
Transaction tx = sn.beginTransaction(); Menu menu = new Menu();
menu.setName("文件");
MenuItem menuItem = new MenuItem();
menuItem.setName("打开");
menu.getMenuItems().add(menuItem);
menuItem.getMenus().add(menu);
sn.save(menu);
tx.commit();
Transaction tx = sn.beginTransaction();
sn.clear();
sn.save(menuItem);
tx.commit();
sn.close(); }
对于inverse 的作用可以查一下资料!
Role 类
private Set<Menu> menus;
@Cascade({org.hibernate.annotations.CascadeType.ALL})
@ManyToMany(mappedBy="roles",fetch = FetchType.EAGER)
@Sort
public Set<Menu> getMenus() {
return menus;
}menu 类
@ManyToMany
@JoinTable(name="tunshi_bi_menus_roles",
joinColumns={@JoinColumn(name="menu_id")},
inverseJoinColumns={@JoinColumn(name="role_id")})
@Cascade({org.hibernate.annotations.CascadeType.ALL})不知道哪错