hibernate集合新增更新问题
hibernate user对象中有个roles集合属性,我在roles中新增一条对象,日志显示删除集合全部对象,再全部新增,而我只想不删除并且新增一条 hibernate --------------------编程问答-------------------- 数据库有3个表,acct_user,acct_user_role(中间表,外键在这声明),acct_roleuser实体中有
//多对多定义
@ManyToMany
//中间表定义,表名采用默认命名规则
@JoinTable(name = "ACCT_USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = { @JoinColumn(name = "ROLE_ID") })
//Fecth策略定义
@Fetch(FetchMode.SUBSELECT)
//集合按id排序.
@OrderBy("id")
//集合中对象id的缓存.
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Cascade(value={CascadeType.MERGE})
public List<Role> getRoleList() {
return roleList;
}
现在我调用:
User user = userDao.findByUsername(SpringSecurityUtils.getCurrentUserName());
List<Role> roles = user.getRoleList();
Role role1 = new Role();
role1.setName("管理员" + new Date());
roles.add(role1);
user.setRoleList(roles);
userDao.save(user);
hibernate打印出来的语句是:
Hibernate:
delete
from
acct_user_role
where
user_id=?
Hibernate:
insert
into
acct_user_role
(user_id, role_id)
values
(?, ?)
Hibernate:
insert
into
acct_user_role
(user_id, role_id)
values
(?, ?)
Hibernate:
insert
into
acct_user_role
(user_id, role_id)
values
(?, ?)
Hibernate:
insert
into
acct_user_role
(user_id, role_id)
values
(?, ?)
Hibernate:
insert
into
acct_user_role
(user_id, role_id)
values
(?, ?)
但是我想只插入一条,而不是全删除再全插入 --------------------编程问答-------------------- 为什么不是update --------------------编程问答--------------------
只需要修改user对象,为什么调用save方法呢
补充:Java , Java EE