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

如何在Java中创建不同数据类型和映射到Hibernate的字段,java,json,database,spring,hibernate,Java,Json,Database,Spring,Hibernate,我正在开发SpringBoot应用程序,我需要在对象中创建一个字段,该字段可以有不同的数据类型,例如Long、String、Boolean,但我不知道如何做。我考虑过对象,但Hibernate无法映射这种类型并保存在postgres数据库中 我希望检索JSON,如下所示: { "field1" : "string" "value" : true / 124L / "text" <- problem with this field(bool or long or string) } {

我正在开发SpringBoot应用程序,我需要在对象中创建一个字段,该字段可以有不同的数据类型,例如Long、String、Boolean,但我不知道如何做。我考虑过对象,但Hibernate无法映射这种类型并保存在postgres数据库中

我希望检索JSON,如下所示:

{
"field1" : "string"
"value" : true / 124L / "text" <- problem with this field(bool or long or string)
} 
{
“字段1”:“字符串”

“value”:true/124L/“text”这应该是可能的,但我不确定这是否是您案例中的最佳设计决策。由于您需要想法,我建议一些更适合您的用例的选项:

<> P>而不是拥有多个可能的数据类型的字段,您可以考虑使用JSONB,因为它仍然是数据库表中的一个列,它具有JSON的灵活性。在JSON结构中,您可以为业务实例提供每个可能的数据类型的单独字段,但只设置相关字段并将其存储在DB中。这是对JSONB类型的良好支持,它可以与Hibernate配合使用

如果您试图实现键/值存储之类的功能,则应检查postgres的hstore模块,并定义自定义用户类型,如下所述:

一个明显但不太好的选择是将
字段作为
文本
数据类型,并使用另一个字段显示实际数据类型并进行相应解析,如下所示:
可能的副本HMMM,我可以,但我没有任何想法如何实现它。谢谢你的回答。是的,我意识到这不是最好的解决方案,但我有问题要做,但是没有指定方法,所以我可以考虑其他解决方案。