1.session的get()和load()有什么区别?
     # get()如果没有找到持久化类返回null,有可能导致空指针异常。
     # load()如果没有找到持久化类直接抛出异常。
     # get()是直接加载数据,load()是延迟加载,当使用被加载数据的时候才发送SQL。
简而言之:Hibernate对于load()认为数据库一定存在,因此可以放心的使用代理进行延迟加
载,如果使用中发现了问题,那么只能抛出异常。而对于get方法一定要获取真实的数据,否则
返回null。

DataType dataType1 = (DataType) session.load(DataType.class, new Long(1));
DataType dataType2 = (DataType) session.load(DataType.class, new Long(1));
System.out.println(dataType1); // 延迟加载,需要使用才发送SQL语句
System.out.println(dataType2); // 从一级缓存中获取持久化对象
System.out.println(dataType1 == dataType2);
session.getTransaction().commit();

2.Query对象在获取表的所有的数据的时候,使用list()和 iterator()有什么区别?
    # 编写代码的方式不同 list()和iterator()
     # 底层发送的SQL语句不同
        list()直接一次性获取到所有持久化类的对象
        iterator()先获取的是所有的数据的id值。当真正的遍历使用数据的
        时候再发送select语句。因此该方法一定要处于session会话中。
     # list发送的查询语句只有1条。Iterator发送多条查询语句,因此
        iterator的效率低下。懒汉式(iterator)   饿汉式(list)
3.list和iterator什么时候使用?
            list()如果表中有少量条数据
            iterator()如果表中有N W条数据

联合主键问题?
      (1) 联合主键映射后可以进行数据的插入
      (2) 联合主键添加后如何查找该持久化对象?
      (3) 联合主键类为什么要实现Serializable接口?
问题解决
      (1) 继续使用get方式加载持久化的对象
           get(Class clazz, Serializable id)
      (2) 只有主键实现了Serializable接口才可以调用该get()方法

最新文章

  1. sharepoint关键位置
  2. ReactJS学习笔记(二)
  3. Dapper学习 - Dapper的基本用法(一) - 查询
  4. Codeforces Round #285 (Div.1 B & Div.2 D) Misha and Permutations Summation --二分+树状数组
  5. WCF终结点配置
  6. Java学习----有风险的代码(异常)
  7. hql中不能写count(1)能够写count(a.id)
  8. 对于笔试题--“good and abc”的理解
  9. Delphi用ADOquery主从表例子(转总结)
  10. c#多线程同步之lock
  11. 解决本地SqlServer无法连接远程服务器数据库,错误10060
  12. Linux安装jdk-8u161-linux-x64
  13. Excel文件读取的两种方式
  14. 使用phpstorm进行PHP断点调试
  15. Base标签小记:更改当前页面的地址
  16. 02_python_while循环/格式化输出/逻辑运算
  17. Android app 全局异常统一处理
  18. 阿里云服务器IIS启用HTTPS协议(转)
  19. mysqld_safe脚本执行的基本流程
  20. mysql 下载

热门文章

  1. 发送短信——java
  2. 《浏览器工作原理与实践》<06>渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?
  3. swagger2注解使用方法
  4. Redis主从、哨兵、集群
  5. 用 Spark 处理复杂数据类型(Array、Map、JSON字符串等)
  6. git -C <other-git-repo-path> [git-command] 指定其它路径的仓库 执行命令
  7. 图像的padding操作
  8. js上传文件夹
  9. 「BZOJ 5010」「FJOI 2017」矩阵填数「状压DP」
  10. 解决xftp远程连接后出现中文乱码