Hibernate一方对多方非主键的关联

CREATE TABLE users(
id VARCHAR(32) PRIMARY KEY,
NAME VARCHAR(50),
PASSWORD VARCHAR(32),
phone VARCHAR(50),
email VARCHAR(50)
);

CREATE TABLE address(
id VARCHAR(32) PRIMARY KEY,
NAME VARCHAR(50),
phone VARCHAR(50),
zip VARCHAR(50),
dft CHAR(1) default ‘0’,
userid VARCHAR(32),
mktime varchar(19),
CONSTRAINT addr_fk1 FOREIGN KEY(userid) REFERENCES users(id)
);
一方:users的id 关联 多方:address的userid

只要配置一方的set就可以了。

<?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 package="cn.hncu.itcast.domain">
    <class name="User" table="users" catalog="bookstore">
        <id name="id" type="java.lang.String">
            <column name="id" length="32"></column>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="50"></column>
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" length="32"></column>
        </property>
        <property name="phone" type="java.lang.String">
            <column name="phone" length="50"></column>
        </property>
        <property name="email" type="java.lang.String">
            <column name="email" length="50"></column>
        </property>
        <set name="addrs" table="address" inverse="true" cascade="all">
            <key column="userid" foreign-key="userid"></key>
            <one-to-many class="cn.hncu.itcast.domain.Address"></one-to-many>       
        </set>
    </class>
    <class name="Address" table="address" catalog="bookstore" >
        <id name="id" type="java.lang.String">
            <column name="id" length="32"></column>
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" length="50"></column>
        </property>
        <property name="phone" type="java.lang.String">
            <column name="phone" length="50"></column>
        </property>
        <property name="zip" type="java.lang.String">
            <column name="zip" length="50"></column>
        </property>
        <property name="dft" type="java.lang.String">
            <column name="dft" length="1"></column>
        </property>
            <property name="userid" type="java.lang.String">
                <column name="userid" length="32"></column>
            </property>
        <property name="mktime" type="java.lang.String">
            <column name="mktime" length="19"></column>
        </property>
    </class>
</hibernate-mapping>

测试结果
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值