簡體   English   中英

JPA @ElementCollection注釋是否總是產生一對多關系?

[英]Does JPA @ElementCollection annotation always produce an one-to-many relationship?

對於此問題,請考慮以下示例:

@Entity
public class File {
    public static enum Permission { READABLE, WRITEABLE, EXECUTABLE }

    @ElementCollection
    @Enumerated(EnumType.ORDINAL)
    Set<Permission> permissions;

    // Omitted
}

假設枚舉值以序數形式存儲,JPA是否總是為此集合創建一個額外的表? 我是否可以更改它以使其不成為一對多關系,即使用列而不是額外的表?

謝謝。

  1. “一對多”是一種實體關聯。 這是值的集合,因此不能是一對多的。
  2. 在單個行的單個字段中存儲多個值在物理上是不可能的,因此,不能,您不能使其執行此操作。
  3. 本質上,您要的是基本屬性,例如private String permissions; 那將使用同一表中的單個列。
  4. 如果要將多個值打包到一個值中,例如當Hibernate保存它時將所有權限手動組合成一個逗號分隔的字符串,則需要編寫一個自定義UserType來實現。

暫無
暫無

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

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