繁体   English   中英

如何在Java中创建具有不同net数据类型和映射到Hibernate的字段

[英]How to create field in Java which differnet data type and mapping to Hibernate

我正在开发spring boot应用程序,我需要在对象中创建一个字段,该字段可以具有不同的数据类型,例如Long,String,Boolean,但是我不知道该怎么做。 我想到了对象,但是Hibernate无法映射此类型并保存在postgres数据库中。

我想像这样检索JSON:

{
"field1" : "string"
"value" : true / 124L / "text" <- problem with this field(bool or long or string)
} 

有人有主意吗?

应该有可能,但是我不确定这是否是您的最佳设计决策。 既然您提出想法,我将建议一些可能更适合您的用例的选项:

您可以考虑使用JSONB,而不是使用具有多种可能数据类型的字段,JSONB在数据库表中仍然是单列,它具有JSON的灵活性。 在JSON结构中,对于业务案例的每种可能的数据类型,您可以具有单独的字段,但只能设置相关的字段并将其存储在db中。 Postgres对JSONB类型有很好的支持,并且可以与Hibernate一起正常工作。

如果您尝试实现键/值存储之类的东西,则应检查postgres的hstore模块并按如下所述定义您的自定义用户类型: 是否可以用Hibernate / JPQL查询PostgreSQL hstore?

一个明显的但不是很好的选择,让您的value字段为text数据类型,并让另一个字段显示实际数据类型并进行相应的解析,如下所示: 一种在postgres的同一列中存储不同数据类型的方法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM