在Java Persistence with Hibernate中,作者建议使用5.1节:
如果属性的类型是java.io.Serializable,则其值为 以序列化形式存储。这通常不是你想要的,而且 你应该总是映射Java类而不是存储一堆字节 在数据库中。想象一下用这个二进制文件维护数据库 申请在几年后消失的信息。
有人可以详细说明一下吗?
如果属性的类型是java.io.Serializable
,那么它的所有属性/字段是否都是可序列化的,并且实际上必需以保持属性?
答案 0 :(得分:1)
从数据库的角度来看,这是非结构化数据,存储为BLOB(字节大对象)或CLOB(字符大对象)...存储效率低(为什么不只是存储在文件系统或内容管理中系统),大多数数据库都有特殊的(re:obnoxious)API来处理它们,你不能对它们进行任何查询,所以它一直都很糟糕。
即使从你的角度来看,它是一个具有结构的类,本质上数据库也无法像这样处理它,除非你有各种插件,插件,OO数据库等,所以它只是一堆字节。