問題:將JSON 欄位對應到Hibernate 實體
1.擴充PostgreSQL 方言:
擴充預設PostgreSQL 方言以辨識「json」類型:<code class="java">public class JsonPostgreSQLDialect extends PostgreSQL9Dialect { public JsonPostgreSQLDialect() { super(); this.registerColumnType(Types.JAVA_OBJECT, "json"); } }</code>
2.使用者類型:
實作org.hibernate.usertype.UserType 介面定義自訂映射:<code class="java">public class StringJsonUserType implements UserType { // ... implementation of required methods ... }</code>
3.註解實體與屬性:
3.註解實體與屬性:<code class="java">@TypeDefs({@TypeDef(name = "StringJsonObject", typeClass = StringJsonUserType.class)}) ... @Type(type = "StringJsonObject") public String getJsonPayload() { ... }</code>
3.註解實體與屬性:
3.註解實體與屬性:
3.註解實體與屬性:將以下註解新增至實體類別聲明和JSON 映射屬性:範例專案:完整範例專案請參考GitHub 專案: https://github.com/timfulmer/hibernate-postgres-jsontype以上是如何將 PostgreSQL 中的 JSON 欄位對應到 Hibernate 實體屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!