zoukankan      html  css  js  c++  java
  • 020 <one-to-one>、<many-to-one>单端关联上的lazy(懒加载)属性

    <one-to-one>、<many-to-one>单端关联上,可以取值:false/proxy/noproxy(false/代理/不代理)

    实例一:所有lazy属性默认(支持懒加载)

                session = HibernateUtils.getSession();

                tx = session.beginTransaction();

     

                //不发出SQL语句,支持lazy(懒加载)

                User user = (User) session.load(User.class, 3);

                //发出SQL语句,只加载普通属性,集合中的数据不会加载

                System.out.println("user.name=" + user.getName());

               

                //不会发出SQL语句,只返回代理类

                Group group = user.getGroup();

                //发出SQL语句,因为现在真正使用对象

                System.out.println("group.name=" + group.getName());

                tx.commit();

    实例二:将<many-to-one>中的lazy设置为false,其它默认

    session = HibernateUtils.getSession();

                tx = session.beginTransaction();

     

                //不会发出SQL

                User user = (User) session.load(User.class, 3);

                //会发出SQL,发出两条SQL,分别是User和组

                //因为<many-to-one>中的lazy=false,则会加载Group

                System.out.println("user.name=" + user.getName());

               

                //不会发出,已经在上面加载了数据

                Group group = user.getGroup();

                //不会发出,已经在上面加载了数据

                System.out.println("group.name=" + group.getName());

                tx.commit();

    实例三:将<class>中的lazy设置为false,其它默认

                session = HibernateUtils.getSession();

                tx = session.beginTransaction();

     

                //会发出SQL,因为<class>中的lazy=false

                User user = (User) session.load(User.class, 3);

                //不会发出SQL,已经在上面加载了

                System.out.println("user.name=" + user.getName());

               

                //不会发出,因为<class>标签上的lazy只对普通属性的影响

                //<class>标签上的lazy不会影响到单端关联上的lazy特性

                Group group = user.getGroup();

                //会发出,因为开始使用对象

                System.out.println("group.name=" + group.getName());

     

                tx.commit();

  • 相关阅读:
    用torchvision.datasets.ImageFolder加载图片数据集
    Python-使用requests库和正则表达式爬取淘宝商品信息
    Item-CF和User-CF算法训练过程优化的心得
    在docker上部署springboot项目
    在Spring Boot 上配置Redis Cluster出现的异常
    Docker Redis5.0 集群搭建
    blade and soul factions
    Traveling in Blade & Soul
    what is blade and soul Soul Shields
    how to get soul shields in blade and soul
  • 原文地址:https://www.cnblogs.com/crazylqy/p/4079505.html
Copyright © 2011-2022 走看看