我以前读过编码最佳实践是hibernate的实体不应该实现
的java.io.Serializable
。
我的想法是为了更好的性能,避免编译器处理实体的东西。我们应该使用DTO序列化来代替客户端和服务器。
是不是?
非常感谢!
答案 0 :(得分:0)
这根本不是最佳实践,实现可序列化与否可对性能没有任何影响。如果您希望能够序列化您的实体,请使它们实现Serializable。如果你不想,那么不要让它们实现Serializable。就这么简单。
当实体本身包含足够的信息时,使用DTO被视为反模式而非被视为最佳实践。
答案 1 :(得分:0)
Hibernate POJO不可序列化。这不是最佳实践或表现的问题。它根本不起作用。这就是原因。
将POJO声明为可序列化时,不会出现任何编译器错误。但是在执行时,当您尝试序列化和反序列化对象时,可能会出现异常。
例如,当您使用GWT并在客户端和服务器之间发送数据时,会出现此问题。这与Hibernate POJO失败只是因为它们无法序列化。有关更详细的例外情况,请参阅“为什么Hibernate对象到达浏览器世界时无法理解”一章中的description of GWT with Hibernate(位于页面中间位置之前)。