值的来源。高/低位算法生成的标识符只在一个特定的数据库中是唯一的。(5) seqhilo:使用一个高/低位算法来高效的生成long, short 或者 int类型的标识符,给定一个数据库序列(sequence)的名字。(6) uuid:用一个128-bit的UUID算法生成字符串类型的标识符,这在一个网络中是唯一的(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。(7) guid:在MS SQL Server 和 MySQL 中使用数据库生成的GUID字符串。(8) native:根据底层数据库的能力选择identity, sequence 或者hilo中的一个。(9) assigned:让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素没有指定时的默认生成策略。手动分配主键的时候要设置成它(10) select:通过数据库触发器选择一些唯一主键的行并返回主键值来分配一个主键。(11) foreign:使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。 5、<property><propertyname="propertyName"[column="column_name"][type="typename"][update="true|false"][insert="true|false"][formula="arbitrary SQL expression"][access="field|property|ClassName"][lazy="true|false"][unique="true|false"][not-null="true|false"][optimistic-lock="true|false"][generated="never|insert|always"][node="element-name|@attribute-name|element/@attribute|"[index="index_name"][unique_key="unique_key_id"][length="L"][precision="P"][scale="S"]/>作用:为类定义了一个持久化的属性。属性如下:(1) name: 属性的名字,以小写字母开头。(2) column(默认为属性名字): 对应的数据库字段名。(3) type: 一个Hibernate类型的名字。(4) update, insert(默认为 true) : 表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。这二者如果都设置为false 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个)字段的某些其他属性,或者通过一个trigger(触发器)或其他
程序生成。(5) formula: 一个SQL表达式,定义了这个计算(computed)属性的值。计算属性没有和它对应的数据库字段。(6) access(默认值为 property): Hibernate用来访问属性值的策略。(7) lazy(默认为 false): 指定指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字节码增强)。(8) unique: 使用DDL为该字段添加唯一的约束。 同样,允许它作为property-ref引用的目标。(9) not-null: 使用DDL为该字段添加可否为空(nullability)的约束。(10) optimistic-lock(默认为 true): 指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。(11) generated(默认为 never): 表明此属性值是否实际上是由数据库生成的。