1:将Hibernate 的 domain类设置为final 那么 lazy (懒加载无法使用)
2:如果Java 中某个属性,不需要存储在数据库中,那么在Hibernate 映射文件就不需要配置这个属性
3:Configuration cfg = new Configuration();
cfg.configure();
有两个操作
1:读取配置文件(从 classpath 中读取 hibernate.cfg.xml)如果你的配置文件不是这个名,那么就该cfg.configure(filename.xml);
2:解析配置文件
4:Session 可以管理多个数据库表所对应的多个实体对象,也就是说Session.get(className.class,id) 需要知道从哪个表中查询id
5:Session接口中get() 和 load()的区别:
1:load实际上是懒加载
2:load不会返回null
3:调用这个方法时Session.load(className.class,id);(不会马上调用)只有在需要时才调用
4:调用load()方法,前提实体类不能是final
6:Session 中 save(user)和persist(user):
没开启事物:save 会插入 数据库,完了回滚,而persist是不会插入数据库
都是不完成插入
7:映射文件:
<id name="id" unsaved-value="0">
id的值和 "0" 比较,相当是没保存。
8:Session 无法提供特殊的查询
Sql 查的是表
HSql 查的是对象
Query Hibernate 主要查询的接口
2:如果Java 中某个属性,不需要存储在数据库中,那么在Hibernate 映射文件就不需要配置这个属性
3:Configuration cfg = new Configuration();
cfg.configure();
有两个操作
1:读取配置文件(从 classpath 中读取 hibernate.cfg.xml)如果你的配置文件不是这个名,那么就该cfg.configure(filename.xml);
2:解析配置文件
4:Session 可以管理多个数据库表所对应的多个实体对象,也就是说Session.get(className.class,id) 需要知道从哪个表中查询id
5:Session接口中get() 和 load()的区别:
1:load实际上是懒加载
2:load不会返回null
3:调用这个方法时Session.load(className.class,id);(不会马上调用)只有在需要时才调用
4:调用load()方法,前提实体类不能是final
6:Session 中 save(user)和persist(user):
没开启事物:save 会插入 数据库,完了回滚,而persist是不会插入数据库
都是不完成插入
7:映射文件:
<id name="id" unsaved-value="0">
id的值和 "0" 比较,相当是没保存。
8:Session 无法提供特殊的查询
Sql 查的是表
HSql 查的是对象
Query Hibernate 主要查询的接口