java hibernate标签_hibernate基础-基本映谢标签和属性

4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png4f1150b881333f12a311ae9ef34da474.png

标签--表

*name="ClassName"                              (1)

*table="tableName"                             (2)

*discriminator-value="discriminator_value"     (3)

mutable="true|false"                          (4)

schema="owner"                                (5)

catalog="catalog"                             (6)

proxy="ProxyInterface"                        (7)

*dynamic-update="true|false"                   (8)

*dynamic-insert="true|false"                   (9)

select-before-update="true|false"             (10)

polymorphism="implicit|explicit"              (11)

where="arbitrary sql where condition"         (12)

persister="PersisterClass"                    (13)

*batch-size="N"                                (14)

*optimistic-lock="none|version|dirty|all"      (15)

*lazy="true|false"                             (16)

entity-name="EntityName"                      (17)

check="arbitrary sql check condition"         (18)

rowid="rowid"                                 (19)

subselect="SQL expression"                    (20)

*abstract="true|false"                         (21)

node="element-name"

/>

(1) name (可选): 持久化类(或者接口)的Java全限定名。 如果这个属性不存在,Hibernate将假定这是一个非POJO的实体映射。

(2) table (可选 - 默认是类的非全限定名): 对应的数据库表名。

(3) discriminator-value (可选 - 默认和类名一样): 一个用于区分不同的子类的值,在多态行为时使用。它可以接受的值包括 null 和 not null。

(8) dynamic-update (可选, 默认为 false): 指定用于UPDATE 的SQL将会在运行时动态生成,并且只更新那些改变过的字段。

(9) dynamic-insert (可选, 默认为 false): 指定用于INSERT的 SQL 将会在运行时动态生成,并且只包含那些非空值字段。

(14) batch-size (可选,默认是1) 指定一个用于 根据标识符(identifier)抓取实例时使用的"batch size"(批次抓取数量)。

(15) optimistic-lock(乐观锁定) (可选,默认是version): 决定乐观锁定的策略。

(16) lazy (可选): 通过设置lazy="false", 所有的延迟加载(Lazy fetching)功能将被全部禁用(disabled)。

(21) abstract (可选): 用于在的继承结构 (hierarchies)中标识抽象超类。

标签 -主键

主键生成策略:

uuid  native 和assigned

*name="propertyName"                                          (1)

type="typename"                                              (2)

*column="column_name"                                         (3)

unsaved-value="null|any|none|undefined|id_value"             (4)

access="field|property|ClassName"                            (5)

node="element-name|@attribute-name|element/@attribute|.">

*length                                                       (6)

(1) name (可选): 标识属性的名字。

(2) type (可选): 标识Hibernate类型的名字。

(3) column (可选 - 默认为属性名): 主键字段的名字。

(4) unsaved-value (可选 - 默认为一个切合实际(sensible)的值): 一个特定的标识属性值,用来标志该实例是刚刚创建的,尚未保存。 这可以把这种实例和从以前的session中装载过(可能又做过修改--译者注) 但未再次持久化的实例区分开来。

(5) access (可选 - 默认为property): Hibernate用来访问属性值的策略。

(6) 长度.

生成唯一的标识

identity

对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。

sequence

在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。

uuid

用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的(使用了IP地址)。UUID被编码为一个32位16进制数字的字符串。

native

根据底层数据库的能力选择identity, sequence 或者hilo中的一个。

assigned

让应用程序在save()之前为对象分配一个标示符。这是 元素没有指定时的默认生成策略。

foreign

使用另外一个相关联的对象的标识符。通常和联合起来使用。

生成字段

*name="propertyName"                                          (1)

*column="column_name"                                         (2)

type="typename"                                              (3)

update="true|false"                                          (4)

insert="true|false"                                          (4)

formula="arbitrary SQL expression"                           (5)

access="field|property|ClassName"                            (6)

lazy="true|false"                                            (7)

unique="true|false"                                          (8)

not-null="true|false"                                        (9)

optimistic-lock="true|false"                                 (10)

generated="never|insert|always"                              (11)

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 (可选 - 默认为属性名字): 对应的数据库字段名。 也可以通过嵌套的元素指定。

(4) update, insert (可选 - 默认为 true) : 表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。这二者如果都设置为false 则表明这是一个“外源性(derived)”的属性,它的值来源于映射到同一个(或多个) 字段的某些其他属性,或者通过一个trigger(触发器)或其他程序生成。

(7) lazy (可选 - 默认为 false): 指定 指定实例变量第一次被访问时,这个属性是否延迟抓取(fetched lazily)( 需要运行时字节码增强)。

(8) unique (可选): 使用DDL为该字段添加唯一的约束。 同样,允许它作为property-ref引用的目标。

(9) not-null (可选): 使用DDL为该字段添加可否为空(nullability)的约束。

映射文件中一般类型中可以省略,其他不略

posted on 2009-11-03 15:35 junly 阅读(450) 评论(0)  编辑  收藏 所属分类: hibernate/orm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值