代码之家  ›  专栏  ›  技术社区  ›  Rafa de Castro

jpa map<string,string>mapping

  •  26
  • Rafa de Castro  · 技术社区  · 15 年前

    如何在不使用Hibernate类的情况下在JPA中映射映射映射?

    4 回复  |  直到 6 年前
        1
  •  15
  •   Willi Mentzel user670265    7 年前

    以下内容对您不起作用吗?

    @ManyToMany(cascade = CascadeType.ALL)
    Map<String,EntityType> entitytMap = new HashMap<String, EntityType>();
    

    EntityType 可以是任何实体类型,包括 String .

        2
  •  21
  •   Jatin Sehgal Sinto    9 年前

    虽然大汉大乘子编给出的答案是正确的。但是 @CollectionOfElements 被贬低。你可以使用 @ElementCollection 而是:

    @ElementCollection
    @JoinTable(name="ATTRIBUTE_VALUE_RANGE", joinColumns=@JoinColumn(name="ID"))
    @MapKeyColumn (name="RANGE_ID")
    @Column(name="VALUE")
    private Map<String, String> attributeValueRange = new HashMap<String, String>();
    

    不需要为 Map 字段。它将自动完成。

        3
  •  10
  •   Subhendu Mahanta    14 年前

    假设我有一个名为book的实体,它有一个章节地图:

    import java.io.Serializable;
    import java.util.Map;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;    
    import org.hibernate.annotations.CollectionOfElements;
    import org.hibernate.annotations.MapKey;
    @Entity
    public class Book implements Serializable{
    @Column(name="BOOK_ID")
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long bookId;    
    
    @CollectionOfElements(targetElement=java.lang.String.class)
    @JoinTable(name="BOOK_CHAPTER",
            joinColumns=@JoinColumn(name="BOOK_ID"))
    @MapKey (columns=@Column(name="CHAPTER_KEY"))
    @Column(name="CHAPTER")
    private Map<String,String> chapters;
    public Long getBookId() {
        return bookId;
    }
    public void setBookId(Long bookId) {
        this.bookId = bookId;
    }
    public Map<String,String> getChapters() {
        return chapters;
    }
    public void setChapters(Map<String,String> chapters) {
        this.chapters = chapters;
    }               
    
    }
    

    它对我有用。

        4
  •  2
  •   Yassin Hajaj    6 年前

    一个工作示例:

    @ElementCollection(fetch=FetchType.EAGER)
    @CollectionTable(name = "TABLENAME")
    @MapKeyColumn(name = "KEY")
    @Column(name = "VALUE")
    public Map<String, String> getMap() {
        return _map;
    }