PID是数据库生成的用于维护关联关系的外键列的列名,使用request如何从前台得到!从上面的配置看,设置inverse=“true”表明children表(为了后面好叙述,将该表的对象的类称为Children类)是从表,即由该端控制关联关系,parent表是主表(为了后面好叙述,将该表的对象的类称为Parent类),不控制关联关系。持久化该对象需要注意两点:
1、在保存数据时,应最先持久化主表即Parent对象(或该对象本身已经处于持久化状态)。因为我们希望程序持久化Children对象时,Hibernate可为children的外键属性分配值。也就是说在向children表插入记录时,该记录的外键列已制定了值——这表明它参照的主表记录已存在。
2、先设置Parent对象和Children对象的关联关系,再保存持久化Children对象。
所以根据上面配置,你可以这样保存对象:
Organization?org1=new?Organization();
org1.setName("aaaa");
org1.setSn("bbbbb");
org1.setDescription("ccccccc");
//持久化该对像
session.save(org1);
//创建一个瞬态Organization对象,令这个对象等于org1
Organization?org2=org1;
//设置关联关系
org2.setParent(org1);
//再持久化org2对象
session.persist(org2);?
我用oracle10g测试了上面的代码,表结构为
一般情况下 都是自身一对多双向关联 在表的内部建立父子关系 可以无限递归,是一个树形结构
比如像这样结构的:
代码 名称 父节点
01 中国
02 北京 01
03 朝阳区 02
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....