Hibernate引用了@MapKey [重复]

问题描述 投票:1回答:1

是否可以映射使用引用表中的键的映射集合?它难以解释,所以这里是我想要完成的一个例子。我希望在Type实体中将语言代码(String)映射到TypeLang实体。

@Entity
public class Type {
    @OneToMany(mappedBy = "type")
    @MapKeyJoinColumn(name = "language.code")
    private Map<String, TypeLang> langMap;
}

@Entity
public class TypeLang {
    @ManyToOne
    @JoinColumn(name = "type_id")
    private Type type;

    @ManyToOne
    @JoinColumn(name = "lang_code")
    private Language language;
}

@Entity
public class Language {
    @Id
    @Column(name = "code")
    @GeneratedValue
    private String code;
}
java hibernate jpa
1个回答
1
投票

如果您希望Key成为实体,则使用MapKeyJoinColumn。要使用String,您必须使用MapKeyColumn批注。

© www.soinside.com 2019 - 2024. All rights reserved.