ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 什么是持久化类? Persistent Object (PO) PO=POJO+hbm映射配置 对于hibernate中的PO编写规则: 1. 必须提供一个无参数的public构造方法 2. 所有属性要private ,对外提供public 的get/set方法 3. 在PO类必须提供一个标识属性,让它与数据库中的主键对应,我们管这个属性叫OID 4. PO类中的属性尽量使用基本数据类型的包装类. Int->Integer double-->Double float->Float 5. PO类它不能使用final修饰符 # OID作用 OID指的是与数据库中表的主键对应的属性。 Hibernate框架它是通过OID来区分不同的PO对象,如果在内存中有两个相同的OID对象,那么hibernate认为它们是同一个对象。 # **为什么PO类属性它要使用包装类型?** 使用基本数据类型是没有办法去描述不存在概念,如果使用包装类型,它就是一个对象,对于对象它的默认值是null. # **PO类不可以使用final修饰?(hibernate中的get/load方法的区别)** Get/load方法它们都是根据id去查询对象。 1. get直接得到了一个持久化类型对象,它就是立即查询操作 load它得到的是持久化类开的代理类型对象(子类对象)。它采用了一种延迟策略来查询数据。 2. get方法在查询时,如果不存在返回null load方法在查询时,如果 不存在,会产生异常 ObjectNotFoundException.