hibernate映射文件开发
1.根元素<hibernate-mapping>
属性列表
package: 指定一个包前缀,如果在映射文档中没有指定全限定类名,就是要这个作为包名
schema:数据库schema的名称
catalog:数据库catalog的名称
default-cascade:默认的级联风格
default-access:Hibernate用来访问属性的策略,可以通过实现PropertyAccessor接口自定义
default-lazy:指定了未明确注明lazy属性的java属性和集合类Hibernate会采用什么样的默认加载风格
1.根元素<hibernate-mapping>
属性列表
package: 指定一个包前缀,如果在映射文档中没有指定全限定类名,就是要这个作为包名
schema:数据库schema的名称
catalog:数据库catalog的名称
default-cascade:默认的级联风格
default-access:Hibernate用来访问属性的策略,可以通过实现PropertyAccessor接口自定义
default-lazy:指定了未明确注明lazy属性的java属性和集合类Hibernate会采用什么样的默认加载风格
auto-import:指定我们是否可以查询语言中使用非全限定的类名
2.使用<class>定义类
<class>是<hibernate-mapping>的子元素,用以定义一个持久化类与数据表的映射关系
该元素包含一些可选的属性
name:
table
discriminator-value
mutable
schema
catalog
proxy
dynamic-update
dynamic-insert
select-before-update
polymorphism
where
persister
batch-size
optimistic-lock
entity-name
rowid
subselect
abstract
注意,如果你打开了dynamic-update,可以选择几种乐观锁定的策略:
version(版本检查) 检查version/timestamp字段
all(全部) 检查全部字段
dirty(脏检查) 只检查修改过的字段
none(不检查) 不使用乐观锁定
建议使用Hibernate的version/timestamp字段来进行乐观锁定,对性能来说
最好的选择,并且这也是唯一能够在session外进行操作的策略(例如在使用session.merge()的时候)