将对象保存到数据库时使用休眠

时间:2014-12-14 19:08:56

标签: java database hibernate jpa orm

在我的java应用程序中,我有一些带继承的序列化实体类。保存这些类的实例时,我将它们转换为字节数组并保存到数据库表中的longblob列。使用hibernate实现这个程序有什么好处。因为据我所知,hibernate用于以适当的方式映射具有数据库表的实体。但是在这里我没有关系模型来映射实体的属性。我将它们保存为对象。我错过了什么。请澄清我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您没有关系数据模型来保存这些对象,并且您无法更改架构,那么您可以使用当前的方法。

如果您使用PostgreSQL,您可能也会对JSON storage感兴趣。这样您就可以使用JSON对象存储层次结构,甚至可以针对它们运行本机SQL查询(尽管不能识别继承,但如果使用某些_class列来区分对象类型,则可以应对这种情况。)

最干净的方法是让关系模型与您的业务领域模型保持同步。这样你就可以受益于:

  • 乐观锁定(preventing lost updates phenomena
  • 缓存(二级缓存和查询缓存)
  • 可查询的层次结构
  • 外部DBA层次结构可以使用仅仅SQL
  • 在您的层次结构上运行更新
  • auditing