类中的每个主键属性都对应到数据库表中的每个主键列,hibernate要求具有联合主键
的实体类实现Serializable接口,并且重写hashCode和equals方法,重写这两个方法是因为
hibernate要根据数据库的联合主键来判断某两行记录是否是一样的,如果一样那么就认为
是同一个对象,如果不一样,那么认为是不同的对象,这反映到程序领域中就是根据hashCode
与equals方法来判断某两个对象是否能够放到诸如Set这样的集合当中
联合主键的实体类实现Serializable接口的原因在于使用get或load方法的时候需要先构建出
来该实体的对象,并且将查询依据(联合主键)设置进去,然后作为get或load方法第二个参数
传进去即可
场景:Student类中有cardId和name两个属性作为主键,现在是这两个属性都在Student这一个类里面,没有分离出来,然后配置文件中映射的时候直接映射这个类里面的这两个属性为主键
Student.java
Student.hbm.xml
hinernate.cfg.xml
建表类:CreateTable.java
测试类:hibernateTest.java
Thanks,Over!I hope for yourhelp!