[英]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.