快速业务通道

hibernate3学习笔记(十一)|复合主键 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

hibernate3学习笔记(十一)|复合主键

时间:2011-02-03

新建数据库User:

1.CREATE TABLE user (2.    name VARCHAR(100) NOT NULL,3.    phone VARCHAR(50) NOT NULL,4.    age INT,5.    PRIMARY KEY(name, phone)6.);

现将name和phone定义成复合主键。分别使用2种方法如下:

方法1.复合主键字段直接包含在PO类中。

User.java(需要实现Serializable接口,并定义equals()和hashCode()方法)

1.package com.hb3.pack_03.model;2.3.import java.io.Serializable;4.import org.apache.commons.lang.builder.EqualsBuilder;5.import org.apache.commons.lang.builder.HashCodeBuilder;6.
7.public class User implements Serializable {8.
9.    private static final long serialVersionUID = -8377583111386512407L;10.
11.    private String name;12.    private String phone;13.    private Integer age;14.15.    public User() {16.    }17.
18.    public Integer getAge() {19.        return age;20.    }21.
22.    public void setAge(Integer age) {23.        this.age = age;24.    }25.
26.    public String getName() {27.        return name;28.    }29.
30.    public void setName(String name) {31.        this.name = name;32.    }33.
34.    public String getPhone() {35.        return phone;36.    }37.
38.    public void setPhone(String phone) {39.        this.phone = phone;40.    }41.42.    public boolean equals(Object obj) {43.        if(obj == this) {44.            return true;45.        }46.47.        if(!(obj instanceof User)) {48.            return false;49.        }50.51.        User user = (User) obj;52.        return new EqualsBuilder()53.                 .append(this.name, user.getName())54.                 .append(this.phone, user.getPhone())55.                 .isEquals();56.    }57.58.    public int hashCode() {59.        return new HashCodeBuilder()60.                 .append(this.name)61.                 .append(this.phone)62.                 .toHashCode();63.    }64.}

hibernate3学习笔记(十一)|复合主键(2)

时间:2011-02-03

在定义equals和hashCode方法时使用了apache的common-lang包。

User.hbm.xml文件:

1.<?xml version="1.0" encoding="UTF-8"?>2.
3.<!DOCTYPE hibernate-mapping PUBLIC4.    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"5.    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
6.
7.<hibernate-mapping>8.
9.    <class name="com.hb3.pack_03.model.User" table="user">
10.11.        <composite-id>
12.13.            <key-property name="name"14.                          column="name"15.                          type="java.lang.String"/>
16.            <key-property name="phone"17.                          column="phone"18.                          type="java.lang.String"/>
19.        </composite-id>
20.
21.        <property name="age" column="age" type="java.lang.Integer"/>
22.23.    </class>24.25.</hibernate-mapping>

hibernate.cfg.xml中修改:

...... &l

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号