观看有关 Hibernate 的旧视频和文章,我发现他们的示例中的所有实体都实现了 Serializable 接口。视频中的一个人甚至说,没有这个,hibernate 会失败,因为实际上传输到数据库意味着序列化。问题的关键在于,现在我看到的所有例子中,没有人在Entity类中实现这个接口,我也不例外。同时,hibernate 为自己安静地工作,不会抱怨任何事情。那么,Entity 类是否需要实现这个接口,或者这是过去的遗物?
观看有关 Hibernate 的旧视频和文章,我发现他们的示例中的所有实体都实现了 Serializable 接口。视频中的一个人甚至说,没有这个,hibernate 会失败,因为实际上传输到数据库意味着序列化。问题的关键在于,现在我看到的所有例子中,没有人在Entity类中实现这个接口,我也不例外。同时,hibernate 为自己安静地工作,不会抱怨任何事情。那么,Entity 类是否需要实现这个接口,或者这是过去的遗物?
Hibernate不序列化Entity,所以本地使用不需要在Entity中实现Serializable。但是,实体也可以是 Java bean,并且可以沿着网络或其他方式传递到更远的地方。这就是 JavaBeans 规范(在 5.5 节中)要求 Java bean 实现 Serializable 或 Externalizable 接口的原因。实体实现符合 JavaBeans 的要求被认为是“最佳实践”。
https://download.oracle.com/otndocs/jcp/7224-javabeans-1.01-fr-spec-oth-JSpec/