day35

    xiaoxiao2021-04-15  48

    lazy

    需要数据的时候才要加载

    懒加载的概念

    类的懒加载

    session.load方法产生的是代理对象,该代理类是持久化类的子类

    集合的懒加载

    set的延迟加载:

    true false extra

    说明: - 1、因为延迟加载在映射文件设置,而映射文件一旦确定,不能修改了。 - 2、延迟加载是通过控制sql语句的发出时间来提高效率的。

    manytoone的懒加载   对于性能来说,没有什么影响,所以随便怎么样都行

    抓取策略

    join:左外连接 select:默认的值 subselect:子查询

    说明: 1、因为抓取策略的设置在映射文件中,所以一旦映射文件生成就不能改变了。 2、通过发出怎么样的SQL语句加载集合,从而优化效率的。

    查询

    hql语句

    单表

    结果为Long类型的数据,该表的总的行数

    一对多

    Criteria查询

    sql查询

    查询的技术路线

    错误分析

    错误1

    该Person在hibernate的映射文件中没有找到:

    1、在hibernate的配置文件中没有加载相应的映射文件 2、也有可能是客户端的session的操作的对象在映射文件中找不到

    错误2

    错误3

    当在hibernate内部生成sql语句的时候,要给insert语句赋值,值从属性的getter方法 中得到,在拼接getter方法的时候,出错了。

    错误4

    当在执行session.get方法的时候,会利用Java的反射机制创建一个对象,利用的是默认的构造函数。所以一个持久化类中必须有一个默认的构造函数

    错误5

    要求主键必须在程序中进行设置

    错误6

    主键的生成策略支持表的主键的值的自动增长,但是该表本身没有这样的机制。

    错误7

    错误解析: 在flushing之前,保存一个临时状态的对象

    前提条件: 在Classes.hbm.xml文件中

    在客户端:

    所以hibernate在保存classes的时候,就不知道该怎么办了。

    错误8

    错误9

    错误原因:当一个对象从数据库中加载数据的时候,session已经关闭了 所有的数据在数据库中加载出来以后,session才能关闭。

    转载请注明原文地址: https://ju.6miu.com/read-671039.html

    最新回复(0)