在hibernate实体类中实现Serializable接口

时间:2013-12-13 07:10:08

标签: java hibernate serializable

在hibernate实体类中实现Serializable接口有什么用? 那个界面在那里继续没有。

2 个答案:

答案 0 :(得分:3)

它是Marker Interface,就像普通interface.

一样
  

标记接口模式是计算机科学中的设计模式,与提供有关对象的运行时类型信息的语言一起使用。它提供了一种将元数据与语言关联的方法,其中语言没有明确支持此类元数据。

Serializable案例java

public interface Serializable{
}

和一些班级

 public class someObje  implements Serializable{

  }

在其他地方Runtime实现像

这样的对象
 if(someObje instnaceOf Serializable){

  //Hey this object can serialize you know. Grant security permission.

 }

按照定义来看你的问题

  

序列化其中对象可以表示为包含对象数据的字节序列,以及有关对象类型和对象中存储的数据类型的信息。

现在没有序列化,hibernate实体如何在您的应用中移动(Client <=> Server <=> Database)

还要检测类型。对于ex in hibernate,请查看Seesion#get()方法的方法签名

Object get(Class clazz,
           **Serializable** id)
           throws HibernateException 

注意:该理论不仅适用于需要序列化的Object的hibernate实体。

答案 1 :(得分:2)

  • 不确定为什么Hibernate实体类需要实现Serializable接口。 Serializable POJO可以写入光盘通过线路传输
  • 如果您的Hibernate实体或POJO涉及其中任何一个,那么只需要实现Serializable接口。

编辑: - 刚刚意识到密钥(主要密钥,复合密钥)需要Serializable,因为它们由持久性Session引用。 (Reference