hibernate对应关系配置

--------------------------------以下是单向关联-----------------------------------------------------------------------------------

一,多对一。

/**表结构**/

table person(

         personID varchar2(32) not null primarykey,

         addressID varchar2(32) not null

)

 

table address(

         addressID varchar2(32) not null primarykey

)

 

person.hbm.xml:

<class name="Person" table="person">

         <id>

                    <generator class="native"/><!-- native表示根据本地数据库自动生成主键-->

                    <!--<generator class="uuid" />    uuid表示根据uuid生成主键-->

         </id>

         <many-to-one  name="address"  column="addressID"  not-null="true"  lazy="false"/>

 

</class>

 

二,一对一。

/**表结构**/

table person(

         personID varchar2(32) not null primarykey,

         addressID varchar2(32) not null unique

)

 

table address(

         addressID varchar2(32) not null primarykey

)

 

person.hbm.xml:再多对一的基础上加唯一约束。

<class name="Person" table="person">

         <id name="personId" column="personID">

                    <generator class="native"/>

         </id>

         <many-to-one  name="address"  column="addressID" unique="true" not-null="true" lazy="false"/>

 

</class>

 

address.hbm.xml:

<class name="Address" table="address">

         <id  name="addressId" column="addressID">

                    <generator class="native"/>

         </id>

</class>

 

三,一对多

table address (

         addressId varchar2(32) not null primary key 

)
table person(

         personId varchar2(32)not null primary key,

         addressId varchar2(32)not null

)

 

<class name="Address " table="address">
           <id name="id" column="addressId">
                      <generator class="native"/>
           </id>
           <set name="persons"><!--也可以使用list不过鉴于list与set特点使用gset好一些-->
                       <key column="addressId" not-null="true"/>
                       <one-to-many class="Person"/>
          </set>
</class>

 

<class name="Person" table="person">
          <id name="id" column="personId">
                       <generator class="native"/>
          </id>
</class>

 ---------------------------------------------

 联合主键,多对一。

create table A_AGENT_EQU(
  agent_id VARCHAR2(32) not null,//agent表主键
  equ_id   VARCHAR2(32) not null//equ表主键
)
 
<hibernate-mapping default-lazy="false" package="com.xinlong.sesip.sp.basic.entity">
<class name="AgentEqu" table="a_agent_equ">
<composite-id>  
            <key-many-to-one name="agentInfo" class="com.entity.AgentInfo">
                <column name="AGENT_ID" scale="0" />
            </key-many-to-one>
            <key-many-to-one name="equInfo" class="com.entity.EquInfo">
                <column name="EQU_ID" scale="0" />
            </key-many-to-one>
        </composite-id> 
</class>
</hibernate-mapping>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值