`
hanqunfeng
  • 浏览: 1543583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate级联实践之一(one-to-one)

阅读更多

一。mapping

这里使用两个表,分别为TBL_OSU_PRODUCT_I,TBL_OSU_PRODUCT_C,后者使用前者的主键作为自己的主键。

mapping如下:重点为红色部分

1.TBL_OSU_PRODUCT_I

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.netqin.function.osuproduct.product.model.OsuProduct" table="TBL_OSU_PRODUCT_I" schema="OSU_WORK">
<id name="id" type="long">
<column name="PRDU_ID" precision="10" scale="0" />
<generator class="sequence">
<param name="sequence">SEQ_OSU_PRODUCT_I</param>
</generator>
</id>
<property name="prduName" type="string">
<column name="PRDU_NAME" length="200" not-null="true" />
</property>
<property name="prduDescription" type="string">
<column name="PRDU_DESCRIPTION" length="200" />
</property>

<one-to-one name="config" class="com.netqin.function.osuproduct.productconfig.model.OsuProductConfig" cascade="all" outer-join="true" lazy="false" />

</class>
</hibernate-mapping>

2.TBL_OSU_PRODUCT_C

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.netqin.function.osuproduct.productconfig.model.OsuProductConfig" table="TBL_OSU_PRODUCT_C" schema="OSU_WORK">
<id name="prduPrduidFk" type="java.lang.Long">
<column name="PRDU_PRDUID_FK" precision="10" scale="0" />
<generator class="foreign">
<param name="property">product</param>
</generator>
</id>
<property name="prduPermitpresub" type="java.lang.Long">
<column name="PRDU_PERMITPRESUB" precision="1" scale="0" not-null="true" />
</property>
<property name="prduPermitzerosub" type="java.lang.Long">
<column name="PRDU_PERMITZEROSUB" precision="1" scale="0" not-null="true" />
</property>


<one-to-one name="product" class="com.netqin.function.osuproduct.product.model.OsuProduct" constrained="true" />
</class>
</hibernate-mapping>

说明:1为主表,2为附属表,所以1对2的cascade="all",既增删改都由1级联负责。 lazy="false" 必须设置为false,负责页面中不能取得值。outer-join="true"关联方式使用外连接。

2中的constrained="true" 说明2引用了1的主键作为外键。

二。方法调用

1.add

object.getConfig().setProduct(object);

dao.save(object);

2.update

dao.update(object);

3.delete

dao.delete(object);

 

只有新增的时候需要指定

 

object.getConfig().setProduct(object);

分享到:
评论

相关推荐

    Hibernate one-to-many / many-to-one关系映射

    在Hibernate的hbm.xml文件中,一对一关系通过&lt;one-to-one&gt;标签,一对多关系通过、、或标签来定义。需要详细指定实体类名、主键列名以及关联的外键列名。 2. 注解配置: 在实体类上直接使用@OneToOne、@OneToMany等...

    Hibernate应用例子one-to-one

    在Hibernate中,"one-to-one"(一对一)关联是一种常见的关系映射类型,表示两个实体之间存在一对一的对应关系,就像一个人只能有一个护照,或者一辆车只能属于一个人一样。 一、一对一关系的配置 1. **注解配置**...

    hibernate many-to-one(多对一)及 cascade(级联).doc

    在Hibernate中,可以通过 `&lt;many-to-one&gt;` 或者 `&lt;one-to-many&gt;` 标签中的 `cascade` 属性来指定这种行为。 #### 代码示例解析 在提供的代码示例中,`&lt;many-to-one&gt;` 标签中包含了 `cascade` 属性的注释示例,但是...

    Hibernate one-to-many-annotation

    在Hibernate中,`one-to-many`关系是常见的实体间关系之一,表示一个实体可以与多个其他实体相关联。本文将深入探讨`Hibernate one-to-many`注解的使用和实现细节。 ### 一、`@OneToMany`注解概述 `@OneToMany`...

    Hibernate的级联操作(增,删,该)

    &lt;many-to-one name="childEntity" class="com.example.ChildEntity" cascade="all,delete-orphan" /&gt; ``` 在这个例子中,父实体的`childEntity`属性将执行全部级联操作,包括添加、删除和更新,同时`delete-orphan`...

    hibernate中基于外键的one2one

    在Java的持久化框架Hibernate中,一对一(One-to-One)关系映射是一种常见的实体关联方式。基于外键的One-to-One映射是其中的一种实现方式,它通过在一方或双方实体的表中添加外键来建立关联。接下来,我们将深入...

    Hibernate之第3解之-hibernate_hibernate_many2one_1

    本篇将重点探讨Hibernate中的Many-to-One关系映射,帮助开发者更深入地理解和运用这一关键特性。 Many-to-One关系是现实世界中常见的关联类型,一个实体可能对应另一个实体的多个实例,例如,一个员工可以属于一个...

    hibernate 级联(cascade和inverse)一对多

    一、Hibernate级联(Cascade) 级联操作允许我们将对一个实体的更改自动应用到与之关联的其他实体。在一对多关系中,如果一个实体(父实体)与多个实体(子实体)关联,设置级联属性可以确保在处理父实体时,子实体...

    Hibernate的缓存级联查询

    外键映射是通过在主表映射文件中使用`one-to-one`元素,而从表映射文件中使用`many-to-one`元素来实现。主键映射则是两个实体类的主键相互关联,这需要在`one-to-one`节点上设置`constrained`属性为`true`,以表明...

    关于Hibernate级联删除的问题.doc

    在给出的例子中,有四个表:A、AA、B和BB,它们之间存在一对多(one-to-many)和一对一(one-to-one)的关系。例如,A表与AA表是一对多关系,而A表与B表是一对一关系,B表与BB表也是一对多关系。 在Hibernate的映射...

    Spring+Hibernate一对多关联映射---部门与员工表的级联添加

    &lt;one-to-many class="com.example.Employee"/&gt; ``` 在"Employee"实体类的映射文件中,需要定义一个反向引用的引用,即`ManyToOne`类型,指定对应的部门ID字段。 ```xml &lt;!-- Employee.hbm.xml --&gt; &lt;many-to-one ...

    hibernate级联增删改查

    本主题将深入探讨"hibernate级联增删改查",特别是针对"t_card主表"和"t_person从表"的关系。 首先,级联操作在Hibernate中是一种配置,用于指定当主表中的实体发生变化时,是否以及如何更新或删除关联的从表实体。...

    Hibernate 一对多、多对一、级联、加载、反转

    在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...

    Hibernate one to one详细配置

    在Java的持久化框架Hibernate中,一对一(One-to-One)关联映射是常见的关系映射类型之一。它用于表示两个实体之间一对一的关联关系,即一个实体对应另一个实体的唯一实例。下面将详细介绍Hibernate中如何进行一对一...

    hibernate one-to-many 单/双向关联映射配置心得

    本文主要关注Hibernate中的一个核心概念——一对一(One-to-One)、一对多(One-to-Many)和多对一(Many-to-One)关联映射,特别是关于“一到多”单向和双向关联映射的配置心得。 首先,让我们了解“一到多”关联...

    hibernate-one-to-one-uni

    在Java开发中,Hibernate...总之,“hibernate-one-to-one-uni”项目旨在帮助开发者理解并掌握Hibernate中一对一单向关系的配置与使用,通过实践加深对这一概念的理解,从而提高Java开发中的数据库操作效率和代码质量。

    Hibernate级联操作.docx

    在 Hibernate 中,级联操作(Cascade)和反向属性(Inverse)是管理对象关系的重要概念,特别是在处理一对多(One-to-Many)或多对一(Many-to-One)关系时。 **级联操作(Cascade)** 级联操作定义了当主对象被...

    Hibernate one to many(many to one) 配置

    标题"Hibernate one to many(many to one) 配置"涉及到的是关系型数据库在Java中的持久化框架Hibernate中的两种关联映射关系:一对一(One-to-One)和多对一(Many-to-One)。在数据库设计中,这种关系很常见,例如...

    Hibernate学习要点_one2one 一对一主键双线关联

    在深入探讨Hibernate中的一对一(One-to-One)主键双线关联机制之前,我们首先需要理解几个核心概念:Hibernate框架、实体关系映射以及主键关联的基本原理。Hibernate是Java平台下的一款开源对象关系映射(ORM)框架...

    Hibernate-One-To-One

    本主题主要关注的是Hibernate中的一个关键概念——一对一(One-To-One)关联映射。一对一关联是两个实体之间的一种关系,其中每个实体最多只能与另一个实体的单个实例相关联。 ### 一对一关联的基本概念 一对一关联...

Global site tag (gtag.js) - Google Analytics