JTA实现两阶段提交,全局事务,对多个数据库起作用

JDBC是本地事务,只对单一数据库起作用

 

Hibernate基本映射

实体类〉表

实体类中的普通属性〉表字段

 

采用<class>标签映射成数据库表,通过<property>标签将普通属性映射成表字段

所谓普通属性指不包括自定义类,集合和树组等

 

auto-import:如果HQL中所需要得类和所在的类不再一个包内如果此属性为false就会报错,默认为true

 

class属性:

dynamic-update:如果为true则只发出修改字段的update语句,默认为false

dynamic-insert:如果为true,null的字段不会放到insert语句中

lazy:默认为true

 

id属性:

必须配到第一个

name:属性column属性 type:类型 length限制字段长度

 

<generator class=”uuid” />可以制定increment,缺电如果有两个jvm(级群环境),不能保证生成唯一

identity:自增 mysql

sequence: oracle

 

uuidhibernate生成的,不是数据库生成的

guid:sql server,mysql

native:自动选择

assigned:手动分配

 

<property>: name, column,type

update, insert:如果设置成false,则生成的语句不会出现这些字段

unique:唯一性,比如姓名唯一

not-null:默认时可以为空

 

uuid方式比自增效率合并发行都要好,缺点是字符串查找比数字慢

 

注意:如果实体类和实体类的属性和sql中的关键字重复,那么必须采用tablecolumn重新命名

 

实体类设计原则:

必须要有无参构造方法,

提供一个标示(identifier)属性(可选)

使用非final得类(可选),影响lazy

提供get,set方法

 

可以使用hibernate.connection.pool设置池

可以使用第三方的池

 

hibernate.hbm2ddl自动建表

posted on 2009-05-06 21:41  IT Person  阅读(350)  评论(0编辑  收藏  举报