Hibernate引用了@MapKey

时间:2018-02-22 13:24:46

标签: java hibernate jpa

是否可以映射使用引用表中的键的地图集合? 它难以解释,所以这里是我想要完成的一个例子。我想在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;
}

1 个答案:

答案 0 :(得分:1)

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