本文可作为北京尚学堂马士兵hibernate课程的学习笔记。
hibernate的映射,主要分为一对一,一对多,多对一,多对多,同时还要单向与双向的区别。
OK,不要纠结于名字,我们开始看例子。
一对一单向
老公是一个实体,老婆也是一个实体。
一个老公只有一个老婆,同时一个老婆也只有一个老公。
上面的关系就叫做一对一。
什么叫单向呢。
看代码:
package com.b...
分类:
Web程序 时间:
2015-06-09 23:48:05
阅读次数:
350
本人理解: 1、谁拥有外键,谁就负责维护关联关系,即关系的拥有方; 2、在OneToMany一对多单向或双向关联关系中,外键建立在多的一方; 3、在OneToOne单向或双向关联关系中,外键建立在关系的拥有方; 4、在ManyToMany单向或双向关联关系中,一端为关系的拥有方,另一端为关系...
分类:
Web程序 时间:
2015-06-04 13:28:44
阅读次数:
145
1、一对多关联,级联操作@OneToMany(mappedBy="paymentad",cascade=CascadeType.ALL,fetch=FetchType.LAZY,targetEntity=PaymentAdHistory.class)publicList<PaymentAdHistory>getPaymentHis(){returnpaymentHis;}PaymentAdHistory类中@ManyToOne(cascade={CascadeType.M..
分类:
Web程序 时间:
2015-05-28 18:24:04
阅读次数:
205
我们在使用hibernate的时候,经常会配置oneToOne,OneToMany等关联关系,同时大家也会经常遇到n+1条查询的问题,第一条是查询主表的所有记录,如果主表有10条,那么就会再生成10条查询去查询关联的记录。这样的效率是非常低的。
有什么办法解决吗,通常我们采用下面几种方法:
1. 配置@Fetch(FetchMode.JOIN),有三种mode,...
分类:
Web程序 时间:
2015-05-09 11:42:50
阅读次数:
161
摘要本文主要是为了解决“spring4+springmvc+springdataJPA+hibernate4整合”,注解了OneToMany、ManyToOne,并配置了懒加载,然后报错的问题第一个问题org.hibernate.LazyInitializationException: could not initialize proxy - no Session at解决办法:在web.xml中,...
分类:
编程语言 时间:
2015-05-01 18:45:33
阅读次数:
1999
在四种关联关系OneToOne,OneToMany,ManyToOne和ManyToMany中,只有OneToOne、OneToMany和ManyToMany这三中关联关系有mappedBy属性。
下面是mappedBy属性在java doc里边的解释:
the field that owns the relationship. Required unless the relationship...
分类:
移动开发 时间:
2015-04-03 19:30:03
阅读次数:
373
用例代码如下:数据库DDL语句1,CAT表 1 create table CAT 2 ( 3 id VARCHAR2(32 CHAR) not null, 4 create_time TIMESTAMP(6), 5 update_time TIMESTAMP(6), 6...
分类:
Web程序 时间:
2015-04-01 23:40:22
阅读次数:
355
用例代码如下:数据库DDL语句1,CAT表 1 create table CAT 2 ( 3 id VARCHAR2(32 CHAR) not null, 4 create_time TIMESTAMP(6), 5 update_time TIMESTAMP(6), 6...
分类:
Web程序 时间:
2015-04-01 23:14:15
阅读次数:
293
使用例:@OneToMany(mappedBy="item",cascade=CascadeType.ALL,fetch=FetchType.EAGER)@Fetch(value=FetchMode.SUBSELECT)两者比较:两者都是设定关联对象的加载策略。前者是JPA标准的通用加载策略注解属性...
分类:
其他好文 时间:
2015-03-20 20:25:29
阅读次数:
159
@ManyToOne(targetEntity = 类名.class, cascade = CascadeType.REFRESH, fetch = FetchType.LAZY) @OneToMany(targetEntity=类名.class,mappedBy = "数据库表名", casca....
分类:
Web程序 时间:
2015-03-20 14:13:44
阅读次数:
157