Hibernate XML 映射 - 当外键列名与映射 table 的列名不同时,它会在数据库中生成两个列
Hibernate XML Mapping - When foreign-key column name is different that mapped table's column name it generating both the column in database
table --> pim_tenant
<class name="PimTenant" table="pim_tenant">
<id name="tenantId" type="string" unsaved-value="null">
<column name="tenant_id" length="36" />
<generator class="uuid2"/>
</id>
<set name="workGroups" inverse="true">
<key column="tenant_id" not-null="true"/>
<one-to-many class="PimWorkgroup"/>
</set>
........................
</class>
</hibernate-mapping>
table --> pim_workgroup
<hibernate-mapping>
<class name="PimWorkgroup" table="pim_workgroup" >
<id name="workgroupId" type="string" unsaved-value="null">
<column name="workgroup_id" length="36" />
<generator class="uuid2"/>
</id>
<many-to-one foreign-key="fk_Workgroup_OwnerTenant"
name="ownerTenant" class="PimTenant" insert="false" update="false">
<column name="owner_tenant_id" length="36" />
</many-to-one>
...
</class>
</hibernate-mapping>
我正在尝试使用 hibernate xml 映射生成 2 table,其中外键列名不同于关联的 table 列名,后者是关联 table 我已经在下面解释了场景。
我正在尝试使用休眠生成 pim_tenant 和 pim_workgroup tables xml上面提到的映射。
如果你看到 owner_tenant_id 是引用 pim_tenant 的 tenant_id[=39 的外键=] column 外键列名与 main table (pim_workgroup --> tenant_id)
不同
当在 pim_workgroup table 中创建 table 时,它生成 owner_tenant_id 列正确地作为外键,但 table 也有额外的新列 tenant_id,不知道为什么要生成此添加项 tenant_id 列 pim_workgroup table
如果我将列 owner_tenant_id 更改为 tenant_id 那么它生成的 tenant_id 作为外来-键正确,没有任何额外的列
但根据我们的数据库设计,我需要此列名称为 owner_tenant_id。
有人请帮助我,我尝试了很多方法,但没有任何效果。
那是因为这一行:
<key column="tenant_id" not-null="true"/>
这是外键列,必须
<key column="owner_tenant_id" not-null="true"/>
table --> pim_tenant
<class name="PimTenant" table="pim_tenant">
<id name="tenantId" type="string" unsaved-value="null">
<column name="tenant_id" length="36" />
<generator class="uuid2"/>
</id>
<set name="workGroups" inverse="true">
<key column="tenant_id" not-null="true"/>
<one-to-many class="PimWorkgroup"/>
</set>
........................
</class>
</hibernate-mapping>
table --> pim_workgroup
<hibernate-mapping>
<class name="PimWorkgroup" table="pim_workgroup" >
<id name="workgroupId" type="string" unsaved-value="null">
<column name="workgroup_id" length="36" />
<generator class="uuid2"/>
</id>
<many-to-one foreign-key="fk_Workgroup_OwnerTenant"
name="ownerTenant" class="PimTenant" insert="false" update="false">
<column name="owner_tenant_id" length="36" />
</many-to-one>
...
</class>
</hibernate-mapping>
我正在尝试使用 hibernate xml 映射生成 2 table,其中外键列名不同于关联的 table 列名,后者是关联 table 我已经在下面解释了场景。
我正在尝试使用休眠生成 pim_tenant 和 pim_workgroup tables xml上面提到的映射。
如果你看到 owner_tenant_id 是引用 pim_tenant 的 tenant_id[=39 的外键=] column 外键列名与 main table (pim_workgroup --> tenant_id)
不同当在 pim_workgroup table 中创建 table 时,它生成 owner_tenant_id 列正确地作为外键,但 table 也有额外的新列 tenant_id,不知道为什么要生成此添加项 tenant_id 列 pim_workgroup table
如果我将列 owner_tenant_id 更改为 tenant_id 那么它生成的 tenant_id 作为外来-键正确,没有任何额外的列
但根据我们的数据库设计,我需要此列名称为 owner_tenant_id。
有人请帮助我,我尝试了很多方法,但没有任何效果。
那是因为这一行:
<key column="tenant_id" not-null="true"/>
这是外键列,必须
<key column="owner_tenant_id" not-null="true"/>