实体hibernate实现序列化



我以前读过的一个编码最佳实践是实体不应该实现hibernate

java.io.Serializable


我的想法只是为了更好的性能,以避免编译器处理实体的东西。我们应该使用DTO序列化来代替客户端和服务器之间的通信。

正确吗?

非常感谢!

这根本不是最佳实践,实现或不实现serializable对性能没有任何影响。如果你希望能够序列化你的实体,让它们实现Serializable。如果你不想这样做,那就不要让它们实现Serializable。就这么简单。

当实体本身包含足够的信息时,使用DTO被视为反模式而不是最佳实践。

Hibernate pojo是不可序列化的。这不是最佳实践或性能的问题。这根本行不通。这就是为什么。

当您将pojo声明为可序列化时,不会得到任何编译器错误。但是在执行时,当你试图序列化和反序列化对象时,你可能会得到一个异常。

当您使用GWT并在客户机和服务器之间发送数据时,问题就会出现。这对于Hibernate pojo来说是失败的,因为它们不能被序列化。有关更详细的异常,请参阅"为什么Hibernate对象到达浏览器世界时不能被理解"一章中对GWT与Hibernate的描述(在页面中间之前一点)。

最新更新