`
newleague
  • 浏览: 1495006 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

hibernate实例简析-hibernate_lazy_for_single_end

阅读更多
hibernate在单端关联上的lazy策略,可以取值:false/proxy/noproxy

<class>标签上的lazy不会影响到单端关联上的lazy特性
===
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Group" table="t_group">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
</class>
</hibernate-mapping>
---
<hibernate-mapping>
<class name="com.bjsxt.hibernate.User" table="t_user" lazy="false">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<!--
<many-to-one name="group" column="groupid" cascade="all"/>
-->
<many-to-one name="group" column="groupid"/>
</class>
</hibernate-mapping>

===
/**
* 所有lazy属性默认**/
//不会发出sql
User user = (User)session.load(User.class, 1);

//会发出sql
System.out.println("user.name=" + user.getName());

//不会发出sql
Group group = user.getGroup();

//会发出sql
System.out.println("group.name=" + group.getName());
===
/**
* 将<many-to-one>中的lazy设置为false,其它默认**/
//不会发出sql
User user = (User)session.load(User.class, 1);

//会发出sql,发出两条sql分别加载User和Group
System.out.println("user.name=" + user.getName());

//不会发出sql
Group group = user.getGroup();

//不会发出sql
System.out.println("group.name=" + group.getName());
===
/**
* <class>标签上的lazy=false,其它默认**/
//会发出sql
User user = (User)session.load(User.class, 1);

//不会发出sql
System.out.println("user.name=" + user.getName());

//不会发出sql
Group group = user.getGroup();

//会发出sql
System.out.println("group.name=" + group.getName());
===
Group group = new Group();
group.setName("尚学堂");

session.save(group);

User user1 = new User();
user1.setName("菜10");
user1.setGroup(group);

User user2 = new User();
user2.setName("容祖儿");
user2.setGroup(group);

//可以正确存储
session.save(user1);
session.save(user2);
分享到:
评论

相关推荐

    lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64

    lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64

    lazy_object_proxy-1.6.0-pp37-pypy37_pp73-win_amd64

    lazy_object_proxy-1.6.0-pp37-pypy37_pp73-win_amd64

    lazy-snapping--master.zip_lazy-snapping

    标题中的“lazy-snapping--master.zip_lazy-snapping”暗示了这是一个关于“lazy-snapping”技术的项目源码或实现,而“master.zip”通常代表GitHub仓库的主分支压缩包。描述提到“基于lazy-snapping的图片分割代码...

    hibernate-distribution-3.6.6.Final-dist

    《Hibernate 3.6.6:持久化框架的里程碑版本》 Hibernate,作为Java领域中最受欢迎的对象关系映射(ORM)框架之一,以其强大的功能和易用性深受开发者喜爱。在Hibernate 3.6.6这个版本中,我们看到了一个稳定、成熟...

    lazy_object_proxy-1.6.0-cp38-cp38-win_amd64

    lazy_object_proxy-1.6.0-cp38-cp38-win_amd64

    lazy_object_proxy-1.4.3-cp27-cp27m-win_amd64

    lazy_object_proxy-1.4.3-cp27-cp27m-win_amd64

    hibernate-html-single

    **hibernate-html-single** 是一个集合了Hibernate官方文档的HTML单页版本,方便开发者查阅和学习Hibernate框架。这个文档通常包含了对Hibernate框架全面而详尽的介绍,涵盖了从基本概念到高级特性的各个方面,是...

    hibernate-release-5.0.7 全包

    Hibernate使用它来实现类的动态代理和字节码增强,例如懒加载(lazy loading)和CGLIB代理。 3. **antlr-2.7.7.jar**:ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。在...

    hibernate源码release-4.1.4.Final版

    《深入剖析Hibernate 4.1.4.Final源码》 Hibernate,作为一款著名的Java对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它通过提供对象化的数据访问接口,使得开发者可以更加专注于业务...

    Python库 | lazy_object_proxy-0.1.0-cp33-none-win_amd64.whl

    python库。 资源全名:lazy_object_proxy-0.1.0-cp33-none-win_amd64.whl

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    默认情况下,Hibernate采用`LAZY`加载,即在需要时才加载关联的对象,以避免不必要的性能开销。若希望关联对象与主对象一起加载,可以设置`fetch = FetchType.EAGER`。 4. **反向引用**: 虽然`@ManyToOne`注解在...

    hibernate-extensions-2.1.3

    1. **延迟加载(Lazy Loading)增强**:Hibernate核心库已经支持延迟加载,但扩展可能提供了更精细的控制,例如按需加载关联的对象集合,减少内存占用和提高性能。 2. **批量操作**:批量插入、更新和删除功能可以...

    hibernate-release-4.3.10.Final.zip

    - **SessionFactory**:是线程安全的,用于创建Session实例,它是整个Hibernate的核心,管理实体类和数据库表的映射信息。 - **Session**:是操作数据库的入口,提供了一种基于对象的操作方式,支持CRUD操作,并...

    hibernate-orm-3.3源码

    Hibernate 支持懒加载(Lazy Loading),即延迟加载关联对象,直到真正需要时才从数据库加载,有效避免了"数据溢出"问题。它通过生成代理对象实现这一功能。 七、事件监听器 Hibernate 提供了一套事件监听系统,...

    hibernate-release-4.2.3.lib.zip

    懒加载(Lazy Loading)是Hibernate的一大特性,它允许对象的关联属性在需要时才加载,从而减少数据库访问。立即加载(Eager Loading)则会在初始加载对象时,同时加载关联的数据。 七、事务处理 在Hibernate中,...

    hibernate-release-5.0.7.Final.zip官方

    ### Hibernate 5.0.7.Final版本解析与应用指南 #### 一、概述 Hibernate 是一款开源的对象关系映射(Object-Relational Mapping,简称 ORM)框架,它为 Java 应用程序提供了对数据库存储的高效管理和访问能力。...

    hibernate-entitymanager-3.4.0.GA

    【标题】"hibernate-entitymanager-3.4.0.GA" 是一个与Java持久化框架Hibernate Entity Manager相关的库,这个版本号表明它是2009年左右发布的一个稳定版本。Hibernate Entity Manager是JPA(Java Persistence API)...

    hibernate-release-4.2.2.Final.zip

    《Hibernate 4.2.2.Final:持久化框架的核心技术与应用》 Hibernate,作为Java领域中的一个著名对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够以面向对象的方式处理数据库交互。在hibernate-...

    hibernate-release-5.2.10

    《深入理解Hibernate 5.2.10:企业级持久化框架解析》 Hibernate作为Java领域最著名的对象关系映射(ORM)框架之一,一直以来都是开发者处理数据库操作的重要工具。本文将围绕`hibernate-release-5.2.10`这一版本,...

    C++ for Lazy Programmers - Will Briggs_C++_

    C++ for Lazy Programmers - Will Briggs

Global site tag (gtag.js) - Google Analytics