首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Hibernate根本映射标签和属性介绍(二)

2012-09-12 
Hibernate基本映射标签和属性介绍(二)四、id标签id标签必须配置在class标签内第一个位置。由一个字段

Hibernate基本映射标签和属性介绍(二)

四、<id>标签

<id>标签必须配置在<class>标签内第一个位置。由一个字段构成主键,如果是复杂主键<composite-id>标签

被映射的类必须定义对应数据库表主键字段。大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识。<id> 元素定义了该属性到数据库表主键字段的映射。

<id        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|.">        <generator name="code"><id name="id" type="long" column="cat_id">        <generator name="code"><property name="totalPrice"    formula="( SELECT SUM (li.quantity*p.price) FROM LineItem li, Product p                WHERE li.productId = p.productId                AND li.customerId = customerId                AND li.orderNumber = orderNumber )"/>

?

注意,你可以使用实体自己的表,而不用为这个特别的列定义别名( 上面例子中的customerId)。同时注意,如果你不喜欢使用属性, 你可以使用嵌套的<formula>映射元素。

注意:如果实体类和实体类中的属性和SQL中的关键重复,必须采用table或column重新命名。

五、<property>标签

<property>元素为类定义了一个持久化的,JavaBean风格的属性。 <property 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"/>

衍生属性(derive propertie)是一个特别强大的特征。这些属性应该定义为只读,属性值在装载时计算生成。 你用一个SQL表达式生成计算的结果,它会在这个实例转载时翻译成一个SQL查询的SELECT 子查询语句。

热点排行