Hibernate(2) 序
1.阻抗不匹配
Java是面向对象语言、对象模型,其主要概念有:继承、关联、多态
数据库是关系模型,其主要概念有:表、主键、外键等
2.解决办法
1.用JDBC转换
2.使用ORM(object relation mapping对象关系映射)框架来解决,主流ORM框架有hibernate、Toplink、OJB
三、
1.domain对象必须有一个无参构造器
2.domain对象如果用final,懒加载就不能用了,load时会产生对象的子类
3.实体类映射文件(主键、主键生成器、属性名、字段名)
4.save和persist,当没开启事务时,save先插入,再回滚。而persist根本不会插入。
5.saveOrUpdate、merge
四、saveOrUpdate、merge
1.瞬时:数据库中没有与之对应的,超过作用域会被JVM垃圾回收器回收,一般是一个new出来的对象与session没有关联的对象
2.持久:数据库中有数据与之对应,之前与session有关,并且相关联的的session没有关闭,事务没有提交。持久对象状态的发生改变,在事务提交时会影响到数据库
3.托管:数据库中有数据与之对应,但当前没有session与之关联,托管对象状态发生改变,hibernate检测不到。
五、异常
1.表名和字段名冲突,自定义表名和字段名或用反引号
六、hql查询和条件查询