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中修改:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于hibernate3学习笔记(十一)|复合主键 - 编程入门网的所有评论