Hibernate中间表添加修改数据的一个问题.

hailong326 2012-08-29 03:10:50
Hibernate中间表添加修改数据的一个问题.
现在有三个table: plan(id, name), plan_machine(plan_id, machine_id), machine(id, name)
JPA只有plan 和 machine 的实体. plan和plan_machine的关联是通过下面方法关联的(存在plan实体里).

@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "plan_machine", joinColumns = { @JoinColumn(name = "plan_id") }, inverseJoinColumns = { @JoinColumn(name = "machine_id") })
@Column(nullable = true)
public List<Machine> getMachines() {
return this.machines;
}

现在我要添加一个plan, 可以通过 getMachines.add(Machine);
但是我发现我一执行这个操作, hibernate就会先把 这个plan下的数据全部都清了.然后逐条添加.
例如:
delete from plan_machine where plan_id = ?
insert into plan_machine(plan_id, macine_id) values(?,?);
insert into plan_machine(plan_id, macine_id) values(?,?);
insert into plan_machine(plan_id, macine_id) values(?,?);
........


现在我不想添加plan_machine的实体, 有什么办法可以通过配置参数不让他全部删除,重新添加. 我只想让hibernate添加新的数据.

...全文
427 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxt_java 2012-08-30
  • 打赏
  • 举报
回复
我现在也遇到和lz类似的情况,我的那个中间表怎么被使用的还没找到,但是已经确定中间表没数据,就是说这个关系被废了,a->b压根就没通过ab,不知道怎么写的这种代码

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧