Hibernate基础之六:联合主键@EmbeddedId
联合主键就是靠多个属性一起来决定主键
所以要新建主键类,其中要实现
1.Serializable //主键需要传递
2.equals(Object o) //靠主键区分pk,所以必须
3.hashCode()//根据pk的哈希码去查找,所以必须
Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); TeacherPK pk = new TeacherPK();//组装联合主键 pk.setId(250); pk.setName("张三"); Teacher t = new Teacher(); t.setPk(pk); //set联合主键t.setAge(0);t.setBirthday(new Date());t.setGrade(Grade.A); session.save(t); session.getTransaction().commit(); HibernateUtil.getSessionFactory().close();
执行后主键就是:primary key (id, name)
DEBUG SchemaUpdate:226 - create table t_Teacher (id number(10,0) not null, name varchar2(255 char) not null, age number(10,0) not null, birthday date, grade varchar2(255 char), primary key (id, name))