休眠映射-在一个表中包含两个映射

| 在Hibernate中是否可以描述以下映射:
+------+                 +------+
|Table1|                 |Table2|
+------+                 +------+
|t1_id | -------+        |t2_id |
+------+        +------- |t1_id |
                         |data_1|
                         |data_2|
                         +------+
类由“ 1”描述,具有两个“ 2”:“ 3”和“ 4”,或者我绝对必须在两个表上划分它? 如果您不介意,请使用
.hbm.xml
样式。     
已邀请:
它只需要一张地图:
public class Table1 {
    private int id;
    private Map<String, Table2> map;
}

public class Table2 {
    private String data_1;
    private String data_2;
}
映射文件:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE hibernate-mapping PUBLIC \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\" \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">
<hibernate-mapping default-access=\"field\" package=\"test\">
    <class name=\"Table1\" table=\"table1\">
        <id column=\"ID\" name=\"id\">
            <generator class=\"native\"/>
        </id>
        <map name=\"map\" table=\"table2\">
            <key column=\"TABLE1_ID\"/>
            <map-key column=\"TABLE2_ID\" length=\"32\" type=\"string\"/>
            <composite-element class=\"Table2\">
                <property name=\"data_1\" column=\"DATA_1\" length=\"128\"/>
                <property name=\"data_2\" column=\"DATA_1\" length=\"128\"/>
            </composite-element>
        </map>
    </class>
</hibernate-mapping>
SchemaExport生成的架构:
alter table table2 
    drop constraint FKCB773E242504FFD6;

drop table table1 if exists;

drop table table2 if exists;

create table table1 (
    ID integer generated by default as identity,
    primary key (ID)
);

create table table2 (
    TABLE1_ID integer not null,
    DATA_1 varchar(128),
    TABLE2_ID varchar(32) not null,
    primary key (TABLE1_ID, TABLE2_ID)
);

alter table table2 
    add constraint FKCB773E242504FFD6 
    foreign key (TABLE1_ID) 
    references table1;
    

要回复问题请先登录注册