在我的java应用程序中,我有一些具有继承的序列化实体类。保存这些类的实例时,我将它们转换为字节数组并保存到数据库表中的 longblob 列。使用hibernate来实现这个程序有什么优势吗?因为据我了解,hibernate 用于以正确的方式将实体与数据库表映射。但这里我没有关系模型来映射实体的属性。我将它们保存为对象。我是不是错过了什么。请澄清我。提前致谢。
最佳答案
如果您没有关系数据模型来保存这些对象并且无法更改架构,那么您可以使用当前的方法。
如果您使用 PostgreSQL,您可能会对 JSON storage 感兴趣。以及。这样,您可以使用 JSON 对象存储层次结构,甚至可以对它们运行 native SQL 查询(虽然不支持继承,但如果您使用某些 _class 列来区分对象类型,则可以应对这种情况)。
最简洁的方法是使关系模型与您的业务域模型同步。这样您就可以受益于:
- 乐观锁定 ( preventing lost updates phenomena )
- 缓存(二级缓存和查询缓存)
- 可查询的层次结构
- 外部 DBA 层次结构可以仅使用 SQL 对您的层次结构运行更新
- auditing
关于java - 将对象保存到数据库时使用hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27472985/