您的位置:首页 > 编程语言 > VB

使用Adsutil.vbs来获取IIS用户的密码

2010-12-24 15:45 369 查看
many-to-many 这是映射关系中最不大好解决的问题。以前没大用过,由于业务需求昨天用了一下,出了bug,bug描述如下:
user和role属于多对多的关系,当为user添加岗位role时,死活添加不进去roles这个属性,而其他的属性都能添加成功。查看后台自动生成显示的数据库操作语句只有:

insert
into
t_user
(department_id, description, email, gender, loginName, name, password, telephone)
values
(?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
insert
into
t_user
(department_id, description, email, gender, loginName, name, password, telephone)
values
(?, ?, ?, ?, ?, ?, ?, ?)
很明显没有将role与user的关系加进表里(就是说表明关系的一条记录)。
纠结中。。。。。。。。。
今天早晨偶发灵感,解决了这个闹心的bug。哎,关键时刻靠自己。
晒代码:
role:

@ManyToMany(mappedBy="roles",cascade=CascadeType.REFRESH)
public Set<User> getUsers() {
return users;
}
user:
@ManyToMany(cascade=CascadeType.REFRESH)
@JoinTable(name="user_role", joinColumns={@JoinColumn(name="user_Id")},
inverseJoinColumns={@JoinColumn(name="role_Id")})
重点:理解mappedBy的意义,mappedBy一定要定义在被控制的一端(也就是相当于小跟班的),他指向控制端的属性.在这里user添加role属性,这里关系是user在维护,也就是说因为user要被分配岗位,所有user和role才有的关系。所以role是被控制端,user是大boss。
级联属性的话:建议写refresh,不能写级联删除,比如user已删除,所有的岗位就删除啦,。。。发生连锁效应不好。
如果上面的关系对调的话,那么想在user里面加上role属性,那你就加加试试吧,根本加不进去,呵呵

现在的自动生成的语句为:
 insert
into
t_user
(department_id, description, email, gender, loginName, name, password, telephone)
values
(?, ?, ?, ?, ?, ?, ?, ?)
Hibernate:
insert
into
t_user
(department_id, description, email, gender, loginName, name, password, telephone)
values
(?, ?, ?, ?, ?, ?, ?, ?)
08:45:44,805 DEBUG SQL:111 -
insert
into
user_role
(user_Id, role_Id)
values
(?, ?)
Hibernate:
insert
into
user_role
(user_Id, role_Id)
values
(?, ?)
中间表中有了一条关系的记录。正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: