posts - 247,  comments - 25,  trackbacks - 0
hibernate一对一关联有两种方式:
1.共享主键:限制两个表的主键使用相同的值
2.唯一外键:
如:通常将会员的登陆账号和会员的详细信息分开
3.数据表
login表:
字段名称 数据类型 主键 自增 允许为空 描述
ID int(4) yes ID号
LOGINNAME char(20) yes 登陆账号
LOGINPWD char(20) yes 登陆密码

详细信息company表:
字段名称 数据类型 主键 自增 允许为空 描述
ID int(4) yes 增1 ID号
COMPANGNAME varchar(100) yes 公司名称
TELPHONE char(20) yes 联系电话
EMAIL char(20) yes 邮件
LINKMAN char(20) yes 联系人


4.PO类
Login.java
public class Login implements Serializable{
    private Integer id;
    private String loginName;
    private String loginPwd;
    private Company company;
    public Login(){
    }
}
Company.java
public class Company implements Serializable{
    private Integer id;
    private String companyName;
    private String linkMan;
    private String telphone;
    private String email;
    private Login login;
    public Company(){
    }
}
6.hbm.xml
Login.hbm.xml:
<hibernate-mapping package="com.lhb.vo">
    <class="Login" table="login">
            <id name="id" column="id" type="integer">
                    <!--直接采用外键的属性值,使用foreign标识生成器,达到共享主键目的-->
                    <generator class="foreign">
                            <param name="property">company</param>
                    </generator>
            </id>
            <property name="loginName" column="LOGINNAME' type="String"/>
            <property name="loginPwd" column="LOGINPWD" type="String"/>
            <!--映射login与company一对一关联-->
            <one-to-one name="company" class="com.lhb.Company" constrained="true"/>
    </class>
</hibernate-mapping>

Company.hbm.xml:
<hibernate-mapping package="com.lhb.vo">
    <class="company" table="COMPANY">
        <id name="id"  column="id" type="integer">
                <generator class="identity"/>
        </id>
        <property name="companyName" type="String"/>
            :
            :
        <one-to-one name="login" class="com.lhb.Login" cascade="all" <!--主控类的所有操作,对关联类也执行同样-->
            lazy="false"/>
    </class>
<hibernate-mapping>
posted on 2008-05-25 16:30 林的 阅读(232) 评论(0)  编辑  收藏 所属分类: hibernate

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

想回家了,呵呵!

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜