Hibernate映射 - 通过表映射

时间:2011-03-30 11:03:00

标签: java hibernate map many-to-many

我有以下数据库结构:

Table 1                    Table 2 
                                                       Table 3
tid_1 ----(many-to-one)---- tid_1                        
....                        tid_2 ----(one-to-many)---- tid_2
                                                        tkey
                                                        tvalue

有没有办法用Table 1创建一个由java.util.Map定义的类,将tkeytvalue的{​​{1}}相关联?我对Hibernate很陌生,在问之前,我试图搜索和试验,但什么都没有。任何帮助将不胜感激。

P.S。 如果这不会妨碍你,我宁愿使用Table 3样式。

1 个答案:

答案 0 :(得分:4)

您可以将tkey作为关键字映射的地图和映射到Table 3的实体声明为值:

@Entity
public class Table1 {
    @ManyToMany
    @JoinTable(name = "Table2")
    @MapKey(name = "key")
    private Map<String, Table3> table3s;

    ...
}

@Entity
public class Table3 {
    @Column(name = "tkey")
    private String key;

    @Column(name = "tvalue")
    private String value;

    ...
}