簡體   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