小编典典

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

all

问题在标题中。下面我只是描述了我的一些想法和发现。

当我有一个非常简单的域模型(3 个没有任何关系的表)时,我的所有实体都没有实现该Serializable接口。

但是当域模型变得更加复杂时,我得到了一个RuntimeException,说我的一个实体没有实现Serializable

我使用 Hibernate 作为 JPA 实现,我想知道:

  1. 它是供应商特定的要求/行为吗?
  2. 我的可序列化实体会发生什么?它们应该可序列化以进行存储或传输吗?
  3. 什么时候需要使我的实体可序列化?

阅读 69

收藏
2022-07-16

共1个答案

小编典典

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

2022-07-16