Hibernate xml配置方法 之 联合主键
来源:互联网 发布:淘宝卖什么单体利润大 编辑:程序博客网 时间:2024/06/08 05:56
StudentPK类,存放Student的联合主键,必须实现java.io.Serializable接口(为了序列化扩充移植),必须重写equals跟hashCode方法(为了确保唯一性)
public class StudentPK implements java.io.Serializable{ 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 boolean equals(Object o) { if(o instanceof StudentPK) { StudentPK pk = (StudentPK)o; if(this.id == pk.getId() && this.name.equals(pk.getName())) { return true; } } return false; } @Override public int hashCode() { return this.name.hashCode(); }}
package com.bjsxt.hibernate;public class Student { private StudentPK pk; private int age; private String sex; private boolean good; public boolean isGood() { return good; } public void setGood(boolean good) { this.good = good; } 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 StudentPK getPk() { return pk; } public void setPk(StudentPK pk) { this.pk = pk; }}Student.hbm.xml:
<hibernate-mapping> <class name="com.bjsxt.hibernate.Student"> <composite-id name="pk" class="com.bjsxt.hibernate.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>测试文件:
import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class HibernateIDTest { private static SessionFactory sessionFactory; @BeforeClass public static void beforeClass() { sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } @AfterClass public static void afterClass() { sessionFactory.close(); } @Test public void testStudentSave() { StudentPK pk = new StudentPK(); pk.setId(5); pk.setName("zhangsan5"); Student s = new Student(); s.setPk(pk); s.setAge(8); Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); session.save(s); session.getTransaction().commit(); } @Test public void testTeacherSave() { Teacher t = new Teacher(); t.setId(5); t.setName("t5"); t.setTitle("middle5"); t.setBirthDate(new Date()); Session session = sessionFactory.getCurrentSession(); session.beginTransaction(); session.save(t); session.getTransaction().commit(); } public static void main(String[] args) { beforeClass(); }}
- Hibernate xml配置方法 之 联合主键
- hibernate联合主键hbm.xml配置
- Hibernate基于XML的----联合主键配置
- Hibernate 联合主键的xml配置
- hibernate笔记-007-联合主键xml配置
- Hibernate 联合主键的配置方法实例
- hibernate配置联合主键
- 联合主键hibernate配置
- hibernate联合主键配置
- Hibernate联合主键配置
- hibernate联合主键-XML形式
- hibernate 联合主键应用及配置用xml方式实现
- Hibernate联合主键怎样在xml中配置
- hibernate如何配置联合主键
- hibernate 联合主键 注释配置
- 2.Hibernate之联合主键
- hibernate 联合主键生成机制(组合主键XML配置方式)
- Hibernate中联合主键的配置
- 揭开J2EE集群的神秘面纱(七)
- install jdk in linux
- 抽象的力量
- CURL --- 命令行浏览器CURL
- Failed to install *.apk on device 'emulator-5554!
- Hibernate xml配置方法 之 联合主键
- 分享给每一位程序爱好者(ACM之旅)
- linux互传文件scp
- WIN7 错误711的解决办法
- PM工单结算规则处理方法
- C语言实现打印1000以内素数的三种基本方法
- WEB页面调用OCX控件
- 转载mars01-20 XML SAX解析
- 获取 iphone 手机的总内存和可用的内存大小