熟悉这个问题......
我有一组与特定表相关的表。现在,为了完成所有这些和“table_one”之间的关系,我只创建了一个由主键组成的表:
id_table_one,id_table_many,id_table_many_type。
第一个表示table_one的id,第二个表示table_many(其中任何一个)的id,第三个键是表示表类型的字符串。
更具体的一个例子:
1,1,“表1” - >表示table_many“表1”(第1行)与table_one的第1行之间的关系
3,5,“表1” - >表示table_many“表1”(第5行)与table_one的第3行之间的关系
3,5,“表2” - >表示table_many“表2”(第5行)与table_one的第3行之间的关系
这在SQL中很容易做到,但问题是,如何在每个table_many中执行hibernate映射?
我将table_one声明如下:
<class name="tableOne" table="table_one">
<composite-id>
<key-property name="idTableOne" type="java.lang.Integer">
<column name="id_table_one" not-null="true"/>
</key-property>
<key-property name="idTableMany" type="java.lang.Integer">
<column name="id_table_many" not-null="true"/>
</key-property>
<key-property name="idTableManyType" type="string">
<column name="id_table_many_type" length="100" not-null="true"/>
</key-property>
</composite-id>
</class>
如何进入许多表?
<class name="tableMany1" table="table_many_1">
<id name="idTableMany1" type="java.lang.Integer">
<column name="id_table_many_1" />
<generator class="identity" />
</id>
<set cascade="all" name="tableOneRows" sort="unsorted"
table="table_one" lazy="false">
<...>
</set>
</class>
我不知道如何填写&lt; ...&gt;部分......有什么建议吗?
我追求的最终目的是管理每个桌子上的tableOne(读/写)很多......
总而言之!答案 0 :(得分:0)
这仅供阅读
<class name="One" table="table_one">
<id name="Id" column="id">
</id>
</class>
<class name="Many1" table="table_many_1">
<id name="id">
<column name="id_table_many_1" />
<generator class="identity" />
</id>
<set cascade="all" name="Ones" table="linking_table" lazy="false" where="id_table_many_type = 'table 1'">
<key column ="id_table_many" />
<many-to-many column="d_table_one" class="One" />
</set>
</class>
writepart取决于:table_one到table_many1 a 1:n或n:m关联?