Hibernate 第五讲 数据库Id生成策略 (4)

来源:互联网 发布:富士通扫描仪软件 编辑:程序博客网 时间:2024/05/01 00:16
xml配置方式
Student.hbm.xml
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping>    <class name="com.darren.hibernate.model.Student">        <!-- name 表示主键,class表示主键对应的类 -->        <composite-id name="pk" class="com.darren.hibernate.model.StudentPk">            <!-- 主键类里边有两个属性作为联合主键 -->            <key-property name="id"></key-property>            <key-property name="name"></key-property>        </composite-id>        <property name="age" />        <property name="sex" />        <property name="good" type="yes_no"></property>    </class></hibernate-mapping>
实体类:
package com.darren.hibernate.model;public class Student {    private StudentPk pk;    private int age;    private String sex;    private boolean good;    public StudentPk getPk() {        return pk;    }    public void setPk(StudentPk pk) {        this.pk = pk;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }    public boolean isGood() {        return good;    }    public void setGood(boolean good) {        this.good = good;    }}
主键策略类:
package com.darren.hibernate.model;import java.io.Serializable;public class StudentPk implements Serializable {    private static final long serialVersionUID = -1587842932882203231L;    private int id;    private String name;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public int hashCode() {        return this.name.hashCode();    }    @Override    public boolean equals(Object object) {        if (object instanceof StudentPk) {            StudentPk pk = (StudentPk) object;            if (this.id == pk.getId() && this.name.equals(pk.getName())) {                return true;            }        }        return false;    }}
原创粉丝点击