为了账号安全,请及时绑定邮箱和手机立即绑定

JPA实体何时以及为何应实现Serializable接口?

JPA实体何时以及为何应实现Serializable接口?

慕沐林林 2019-10-15 14:52:11
问题在标题中。下面我仅描述了我的一些想法和发现。当我有一个非常简单的域模型(3个表没有任何关系)时,我所有的实体都没有实现Serializable。但是,当域模型变得更加复杂时,我遇到了RuntimeException,它表示我的一个实体没有实现Serializable。我使用Hibernate作为JPA实现。我想知道:它是特定于供应商的要求/行为吗?我的可序列化实体会怎样?它们应该可序列化以存储或传输吗?何时需要使我的实体可序列化?
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

如果您混合使用HQL和本机SQL查询,通常会发生这种情况。在HQL中,Hibernate将您传递的类型映射到数据库可以理解的任何类型。运行本机SQL时,必须自己进行映射。如果您不这样做,则默认映射是序列化参数并将其发送到数据库(以希望它能理解它)。


查看完整回答
反对 回复 2019-10-15
?
aluckdog

TA贡献1847条经验 获得超7个赞

根据JPA规范:

如果要通过值将实体实例作为分离的对象(例如,通过远程接口)传递,则实体类必须实现Serializable接口。

“ JSR 220:Enterprise JavaBeansTM,版本3.0 Java Persistence API版本3.0,最终版本,2006年5月2日”


查看完整回答
反对 回复 2019-10-15
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

Serializable如果需要通过有线方式传输它们(将它们序列化为其他表示形式),将它们存储在http会话中(然后由servlet容器序列化到硬盘上)等,则需要实体。

仅仅出于持久性的考虑,Serializable并不需要,至少对于Hibernate而言。但是制作它们是一种最佳实践Serializable


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 629 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信