hibernate映射文件元素属性之二 Class

class
你可以使用class元素来定义一个持久化类:

    name="ClassName"
    table="tableName"
    discriminator-value="discriminator_value"
    mutable="true|false"
    schema="owner"
    catalog="catalog"
    proxy="ProxyInterface"
    dynamic-update="true|false"
    dynamic-insert="true|false"
    select-before-update="true|false"
    polymorphism="implicit|explicit"
    where="arbitrary sql where condition"
    persister="PersisterClass"
    batch-size="N"
    optimistic-lock="none|version|dirty|all"
    lazy="true|false"
    entity-name="EntityName"
    check="arbitrary sql check condition"
    rowid="rowid"
    subselect="SQL expression"
    abstract="true|false"
    node="element-name"

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

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

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

4
mutable (可选,默认值为true): 表明该类的实例是可变的或者不可变的。

5
schema (可选): 覆盖在根元素中指定的schema名字。

6
catalog (可选): 覆盖在根元素中指定的catalog名字。

7
proxy (可选): 指定一个接口,在延迟装载时作为代理使用。 你可以在这里使用该类自己的名字。

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

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

10
select-before-update (可选, 默认为 false): 指定Hibernate除非确定对象真正被修改了(如果该值为true-译注),否则不会执行SQL UPDATE操作。在特定场合(实际上,它只在一个瞬时对象(transient object)关联到一个 新的session中时执行的update()中生效),这说明Hibernate会在UPDATE 之前执行一次额外的SQL SELECT操作,来决定是否应该执行 UPDATE。

11
polymorphism(多态) (可选, 默认值为 implicit (隐式) ): 界定是隐式还是显式的使用多态查询(这只在Hibernate的具体表继承策略中用到-译注)。

12
where (可选) 指定一个附加的SQLWHERE 条件, 在抓取这个类的对象时会一直增加这个条件。

13
persister (可选): 指定一个定制的ClassPersister。

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

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

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

(17)
entity-name (可选,默认为类名): Hibernate3允许一个类进行多次映射( 前提是映射到不同的表),并且允许使用Maps或XML代替Java层次的实体映射 (也就是实现动态领域模型,不用写持久化类-译注)。 更多信息请看第 4.4 节 “动态模型(Dynamic models)” and 第 18 章 XML映射。

(18)
check (可选): 这是一个SQL表达式, 用于为自动生成的schema添加多行(multi-row)约束检查。

(19)
rowid (可选): Hibernate可以使用数据库支持的所谓的ROWIDs,例如: Oracle数据库,如果你设置这个可选的rowid, Hibernate可以使用额外的字段rowid实现快速更新。ROWID是这个功能实现的重点, 它代表了一个存储元组(tuple)的物理位置。

(20)
subselect (可选): 它将一个不可变(immutable)并且只读的实体映射到一个数据库的 子查询中。当你想用视图代替一张基本表的时候,这是有用的,但最好不要这样做。更多的介绍请看下面内容。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate映射配置文件用于定义 Java 实体类和数据库表之间的映射关系。通常情况下,映射文件的名称和对应的实体类名称相同,只是后缀名不同。比如,对于一个名为 `User` 的实体类,映射文件的名称可以为 `User.hbm.xml`。 下面是一个简单的 Hibernate 映射配置文件的示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.example.User" table="users"> <id name="id" column="id"> <generator class="native"/> </id> <property name="name" column="name" /> <property name="age" column="age" /> <property name="email" column="email" /> </class> </hibernate-mapping> ``` - `hibernate-mapping`:根元素,用于指定文档类型和版本。 - `class`:表示一个 Java 实体类和数据库表之间的映射关系,它包含了实体类的名称和对应的数据库表的名称。 - `id`:表示实体类的主键,它包含了主键的名称和对应的数据库表的列名,以及主键生成策略。 - `property`:表示一个实体类属性和对应的数据库表的列之间的映射关系,它包含了属性的名称和对应的数据库表的列名。 映射文件每一个 `class` 元素对应一个 Java 实体类和数据库表之间的映射关系,其可以包含 `id` 和多个 `property` 元素。根据需要,还可以使用其他元素来定义实体类和数据库表之间更复杂的映射关系。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值