码迷,mamicode.com
首页 > Web开发 > 详细

hibernate学习:联合主键

时间:2015-02-06 18:52:23      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:hibernate   主键策略   联合主键   

一:直接看程序


二:源码分析

(1)在Teacher中将作为联合主键的属性都加上@id注解
@Id
private int id;
@Id
private String name;

(2)在Teacher类,加上注解@IdClass(value = TeacherPK.class)置顶联合主键类

(3)TeacherPK作为联合主键对象,必须实现序列化接口


否则异常:
Exception in thread "main" org.hibernate.MappingException: composite-id class must implement Serializable: com.hibernate.model.TeacherPK

三:什么是序列化
序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。
序列化分为两大部分:序列化和反序列化。
序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。
反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。




联合主键加序列化目的:
(1)对象存储在内存中,如果集群服务器启动一个down机,需要将内存中的数据转移到其他服务器,就需要序列话
(2)如果内存满了,需要将数据转义到虚拟内存,也需要实现序列化。

hibernate学习:联合主键

标签:hibernate   主键策略   联合主键   

原文地址:http://blog.csdn.net/u013628152/article/details/43566725

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!