簡體   English   中英

如何在 Hibernate 中保留字符串列表?

[英]How to persist a List of Strings in Hibernate?

我似乎在映射 Hibernate 中的列表時遇到問題。 在我們的項目中,有一張 class Card ,其中包含一個 class Answer ,其中Answer包含一個List<String>

Hibernate 是否可以使用注釋映射List<String> 我的意思是,因為它沒有@Entity注釋?

問候

使用@ElementCollection

@ElementCollection
@CollectionTable(name="Nicknames", joinColumns=@JoinColumn(name="user_id"))
@Column(name="nickname")
public List<String> getNicknames() { ... } 

資料來源: 7.2.3。 Collections 基本類型和可嵌入對象

嘗試

  @org.hibernate.annotations.CollectionOfElements(
        targetElement = java.lang.String.class
    )
    @JoinTable(
        name = "foo",
        joinColumns = @JoinColumn(name = "foo_id")
    )
    @org.hibernate.annotations.IndexColumn(
        name = "POSITION", base = 1
    )
    @Column(name = "baz", nullable = false)
    private List<String> arguments = new ArrayList<String>();

或查看此詳細示例

如果您願意將它們存儲在與 JSON(MySQL、 PostgreSQL也支持索引和二進制 JSON)相同的列中,您可以簡單地使用com.vladmihalcea/hibernate-types-52庫。

@TypeDefs({
    @TypeDef(name = "json", typeClass = JsonType.class)
})
public class YourEntity {
   @Column(nullable = false)
   @Type(type = "json")
   private List<String> fieldName = List.of();
   ...
}

在此處查看完整指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM