hibernate关联关系的整理

简介: hibernate关联关系的整理 1、关联关系映射的步骤 1.1关联关系的搭建 ---建表 ---建实体 1.2映射关联关系 1.3使用测试 2、映射关联关系 1:1                    双向                                           .

hibernate关联关系的整理

1、关联关系映射的步骤
1.1关联关系的搭建
---建表
---建实体
1.2映射关联关系
1.3使用测试
2、映射关联关系
1:1                    双向                                            单向
*主表方:
//关系属性                                        *主表方:
//mappedBy="映射着外键的 对方中的属性"                //关系属性
@OneToOne(mappedBy="person51")                        @OneToOne(mappedBy="person51")
private Passport passport51;                          @JoinColumn(name="person_id")//声明外键列是谁,自己维护外建
*从表方:                                                 private Passport passport51;
//关系属性                                        *从表方:
@OneToOne//声明关系                                 //无关系属性
@JoinColumn(name="person_id")//声明外键列是谁
private Person person51;

1:*                双向                            单向
*主表方:                            *主表方:
@OneToMany(mappedBy="user")          @OneToMany
*从表方                                 @JoinColumn(name="user_id")
@ManyToOne                        *从表方
@JoinColumn(name="user_id")          无关系属性

*    :*
//关系属性
@ManyToMany02
/*
* name=关系表名称
* joinColumns=关系表中,指向自己的外键
* inverseJoinColumns=关系表中,指向对方的外键
*/
@JoinTable(name="rel_s_c",
joinColumns={@JoinColumn(name="cour_id")},
inverseJoinColumns={@JoinColumn(name="stu_id")})
*关系双方的映射,一致(双向都映射,单向只需一方映射 无主次)。

3、注意事项:
3.1    1:1---删除时需要在对方解除关系(与方向无关) 从.get(主).set从(null)
---为主表添加从表维护关系 (与方向无关): 从表.setXXX(主表)//使得从表有外键来源
---级联保存双方维护关系(双向):  从表.setXXX(主表)  主表.serXXX(从表)
---级联保存双方维护关系(单向):  只需有外键的一方维护外键
1:*---删除时不需要维护外键
---单向和双向的区别  --为主表附加从表 维护关系  主.set从(从)   session.update(主);
--级联插入双方数据  维护关系   主.set从(从)
*:*---为一方附加另一方  另一方.set(一方)  session.save(另一方)
---在已存在的双方之间搭建关系  一方.set(另一方) session.update(一方)
---级联保存  只在一方维护关系  A.set(B)
---单独删除一方无级联权限
---级联删除:慎用=不用
3.2    当更新 映射了外键的一方时,对象不能是new 出来的 (new 出来的对象关系不完整,
会导致hibernate去数据库中置空外键)
4、级联:
查询级联默认,不受级联级别限制

//获取表格选择行
var rows = $('#test1').datagrid('getSelections');
console.log(rows);
//判断是否选择行
if (!rows || rows.length == 0) {
$.messager.alert('提示', '请选择要删除的数据!', 'info');
return;
}
var parm;
//循环给提交删除参数赋值(音乐风格编码)
$.each(rows, function (i, n) {
if (i == 0) {
parm = "ids" + n.id;
} else {
parm += "&ids=" + n.id;
}
});

$.messager.confirm('提示', '是否删除选中数据?', function (r) {
if (!r) {
return;
}
//提交
$.post('${pageContext.request.contextPath}/category/dropCategory', parm,
function (msg) {
if (msg.IsSuccess) {
$.messager.alert('提示', msg.Message, 'info', function () {
//重新加载当前页
$('#test').datagrid('reload');
});
} else {
$.messager.alert('提示', msg.Message, 'info')
}
});
});

}

原文地址http://www.bieryun.com/3170.html

相关文章
|
SQL 架构师 Java
SpringBoot从入门到精通(二十八) JPA 的实体映射关系,轻松一对一,一对多,多对多关系映射!
前面讲了Spring Boot 使用 JPA,实现JPA 的增、删、改、查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用。JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层和sql语句即可实现完整的数据操作方法。但是,之前都是介绍的单表的增删改查等操作,多表多实体的数据操作怎么实现呢?接下来聊一聊 JPA 的一对一,一对多,多对一,多对多等实体映射关系。
SpringBoot从入门到精通(二十八) JPA 的实体映射关系,轻松一对一,一对多,多对多关系映射!
|
Java 数据库连接 测试技术
如何使用mybatis处理数据库关系中的多对一关系呢?
如何使用mybatis处理数据库关系中的多对一关系呢?
|
Java 数据库连接
hibernate一对多关系操作
hibernate一对多关系操作
167 1
hibernate一对多关系操作
|
XML Java 数据库连接
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
92 0
《Hibernate上课笔记》-----class7----Hibernate实现多对多关联映射
|
SQL Java 测试技术
SpringBoot从入门到精通(二十八)JPA 的实体映射关系,一对一,一对多,多对多关系映射!
前面讲了Spring Boot 使用 JPA,实现JPA 的增、删、改、查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用。JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层和sql语句即可实现完整的数据操作方法。但是,之前都是介绍的单表的增删改查等操作,多表多实体的数据操作怎么实现呢?接下来聊一聊 JPA 的一对一,一对多,多对一,多对多等实体映射关系。
SpringBoot从入门到精通(二十八)JPA 的实体映射关系,一对一,一对多,多对多关系映射!
|
网络安全
SSH框架中使用双向关联如何处理外键(添加)
EG:已知表customer :user 为1:多关系
100 0
|
Java 数据库连接 数据格式
|
JSON Java 数据库连接
hibernate注解配置关联关系
1.在判断到底是谁维护关联关系时,可以通过查看外键,哪个实体类定义了外键,哪个类就负责维护关联关系。 JoinColumn(name="pid") 2. 在保存数据时,总是先保存的是没有维护关联关系的那一方的数据,后保存维护了关联关系的那一方的数据,如:              Person p = new Person();             p.setName("xia
3633 0