hibernate映射文件中的id标签以及联合主键
hibernate映射文件中的id标签以及联合主键
一、id标签
? ? ? ?被映射的类必须定义对应数据库表主键字段。大多数类有一个JavaBeans风格的属性, 为每一个实例包含唯一的标识。<id> 元素定义了该属性到数据库表主键字段的映射
?
二、联合场景
学生表Student是由id和name联合形成主键
三、联合主键类的编写
? ? ? 1)实现java.io.Serializable接口
? ? ? 2)必须重写equals() 和 hashCode() 方法
?
?其中:
<composite-id 指定联合主键的信息
?<key-property 指定在StudentId类中的联合信息
五、测试类
?
?
package com.linys.model;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.AfterClass;import org.junit.BeforeClass;import org.junit.Test;public class TestUniPk {static SessionFactory sf;@BeforeClasspublic static void setUpBeforeClass() throws Exception {sf = new Configuration().configure().buildSessionFactory();}@Testpublic void testUniPk(){StudentId stuId=new StudentId();//stuId.setId(1);stuId.setName("linys");Student stu=new Student();stu.setAge(23);stu.setId(stuId);Session session =sf.openSession();Transaction tr=session.beginTransaction();session.save(stu);tr.commit();session.save(stu);}@AfterClasspublic static void tearDownAfterClass() throws Exception {sf.close();}}??
?
?
?