所在cascade,就是说我在更新一方的时候,可以根据这一方对象之间的关联关系,去对被关联方进行持久化,比如说Team和Student之间的1对多关系,使用cascade,可以在team方维护其持有的student集合时,自动对其新增,修改,删除的student对象进行持久化,而没必要显示的进行session.save(student)操作,cascade="delete"的意思就是说,我在session.delete(team)的时候,可以一并删除其所有的student
数据库脚本:
create
table
student(id
varchar
(
32
)
primary
key
,
team_id
varchar
(
32
),
name
varchar
(
32
),
cardid
varchar
(
32
),
age
int
);
create
table
team(id
varchar
(
32
)
primary
key
,
team_id
varchar
(
32
),
teamname
varchar
(
32
));
insert
into
team
values
("
1
","
1
","team1");
insert
into
student
values
("
1
","
1
","stu1","
20070101
",
22
);
insert
into
student
values
("
2
","
1
","stu2","
20070102
",
23
);
持久化JavaBean
package
Cascade.saveUpdate;


public
class
Student
...
{
private String id;
private String cardid;
private String name;
private int age;
private Team team;
public String getId() ...{
return id;
}
public void setId(String id) ...{
this.id = id;
}
public String getCardid() ...{
return cardid;
}
public void setCardid(String cardid) ...{

本文介绍了Hibernate的级联操作,特别是级联删除(Cascade=delete)。通过示例展示了当删除Team对象时,如何自动删除与其关联的Student对象。讨论了inverse属性的影响,指出inverse="false"会导致不必要的更新操作,而设置inverse="true"可以提高效率。

8293

被折叠的 条评论
为什么被折叠?



