Hibernate学习札记1
Hibernate学习笔记1
1. 对象-关系的映射
对象中的属性与数据库中的表,不是一一对应的。并不是持久类中的所有属性都直接和表的字段匹配,持久类的有些属性的值必须在运行时通过计算才能得出来,这种属性称为派生属性 。
解决:A.在持久类的访问方法中计入程序逻辑(set/get方法)
B.利用<property>元素的formula属性。formula属性用来设置一个SQL表达式。注意null的情况,最好使用包装类型。
2. 控制insert和update语句
默认情况下,hibernate会在初始化阶段,在SessionFactory的内置缓存中预定义SQL语句。HQL或QBC查询对应的select语句是在执行代码时才会动态生成。
<property> insert和update属性,控制属性是否要inset/update
<class> mutable 如果为false,表示整个实例不能被更新。默认true
<class> dynamic-insert / dynamic-update属性,默认false。如果为true,表示会动态生成SQL语句