`

Hibernate备忘录-5

阅读更多

1.

//		/*不再:user.setGroup(group);*/
//		//需要对User的group做如下设置
//		//@ManyToOne(cascade={CascadeType.ALL})
//		//cascade={CascadeType.ALL})可以把user关联的transparent对象:group保存进入

 

 

2.

		/*在获取多方的时候,是否获得1方的数据,答案是肯定的
		 *一般我们获得一个用户的时候都会想得到它的组 
		 **/

//		/*@ManyToOne(cascade={CascadeType.ALL})
//		 * ManyToOne 无论你是否设置cascade={CascadeType.ALL}
//		 * 它默认都会帮你把1的那方取出来
//		 * */


		/*在获取1方的时候,是否获得多方的数据,答案是否定的
		 *一般我们获取一个组的信息时不会获得这个组的所有用户的信息出来
		 **/


		//测试get
		Session session2=HibernateSessionFactory.getSession();
		Transaction transaction2=session2.beginTransaction();
		//默认不取多方的数据
		Group g=(Group)session2.get(Group.class, 1);
		//当加上了fetch=FetchType.EAGER后,会取多方(user)的数据
		transaction2.commit();
		session2.close();


	@OneToMany(mappedBy="group",cascade={CascadeType.ALL},fetch=FetchType.EAGER)
	//cascade只对del,update,create有效
	//对于获取,用fetch

 

3.

 

 @OneToMany(
   mappedBy = "group"
   , cascade = { CascadeType.ALL }
   , fetch = FetchType.LAZY//默认值
   )
 //cascade只对del,update,create有效
 //对于获取,用fetch

 

 

4.

@Entity
@Table(name="tb_user")
public class User implements Serializable{
	private int id;
	private String name;
	private Group group;
	@ManyToOne(
		cascade={CascadeType.ALL}
		,fetch=FetchType.LAZY
	)
	public Group getGroup() {
		return group;
	}

当从多方获得一方的数据时,默认是FetchType.EAGER
当从一方获得多方的数据时,默认是FetchType.LAZY
其实这是比较符合现实情况的

如上情况:
fetch=FetchType.LAZY
则SQL:
Hibernate: 
    select
        user0_.id as id1_0_,
        user0_.group_id as group3_1_0_,
        user0_.name as name1_0_ 
    from
        tb_user user0_ 
    where
        user0_.id=?





 fetch=FetchType.EAGER
则SQL:
Hibernate: 
    select
        user0_.id as id1_1_,
        user0_.group_id as group3_1_1_,
        user0_.name as name1_1_,
        group1_.id as id0_0_,
        group1_.name as name0_0_ 
    from
        tb_user user0_ 
    left outer join
        tb_group group1_ 
            on user0_.group_id=group1_.id 
    where
        user0_.id=?

 

5.

当获得的数据需要排序才选择list,一般都是set

 

6.

分享到:
评论

相关推荐

    struts+spring+hibernate3+webligic812环境配置备忘录

    struts+spring+hibernate3+webligic812环境配置备忘录

    angularjs-hibernate-springmvc

    这是一个备忘录, 主要用angjularjs框架写的前台,bootstrap做的页面样式,页面跳转用了angular-ui-router这个模块插件。 后台主要用了springmvc和hibernate。这是我练笔的一个项目,由于时间关系有些功能没做,当中...

    code-memo:代码备忘录, 包含mybatis、spring、spring-boot、hbase、hive、guava、jdk等示例代码

    Code-memo 平时学习的开源框架的示例代码。包括mybatis、spring、spring-boot、hbase、...springboot、jpa、hibernate访问mysql,并提供restful接口 opensource-utils google guaua 使用示例,hbase访问接口以及hbase操

    SSH辅助教学系统jsp开发语言mysql数据库myeclipse设计java编程

    3.管理员用户:登录功能、退出功能、课程管理、作业管理、资料下载管理、选课管理、留言管理、备忘录管理、心得管理、班级管理、学院管理、系管理、教师管理、学生管理,拥有系统 最高权限。 三、注意事项 1、管理...

    the-apache-ignite-book:The Apache Ignite Book的所有代码示例,脚本和更深入的示例。 包括Apache Ignite 2.6或更高版本

    例如,备忘录部分的清单放置在章/ chapter-5 / memoization文件夹中。 这本书是关于什么的? Apache Ignite是使用最广泛的以开源内存为中心的分布式,缓存和处理平台之一。 这使用户可以将该平台用作内存计算框架...

    文明者:文明者-有效管理数据知识的工具

    :hot_beverage: 描述Civilizer是用于笔记或个人知识管理(PKM)的Web应用程序工作所需的知识/专长/技巧/窍门临时备忘录/笔记时间表/计划您经常为琐事而忘记的详细过程例如,在计算机上安装打印机驱动程序,提交纳税...

    java面试题以及技巧

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题目与技巧1

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题及技巧4

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题及技巧3

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    java面试题以及技巧6

    │ Struts+Hibernate+Spring轻量级J2EE企业应用实战.pdf │ Struts中文手册.pdf │ Struts配置文件详解.txt │ 上海税友.txt │ 上海税友软件 面试题.doc │ 公司培训文档-混淆的基本概念.doc │ 基本算法.doc │ ...

    基于Java(SSH)+ionic + MySQL实现电子词典APP【100011513】

    后端使用 SSH 框架,用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的 Java 对象,然后编写基本的 DAO 接口,采用 Hibernate 架构实现的 DAO 类来实现 Java 类与数据库之间的转换和访问,最后由 ...

    自学oracle存储过程

    关于 Oracle 存储过程的若干问题备忘...........................................................................................4 1. 在 Oracle 中,数据表别名不能加 as。......................................

Global site tag (gtag.js) - Google Analytics