【发布时间】:2014-08-25 18:16:14
【问题描述】:
有一个表 A 和一个表 B,A 对 B 有一个 fk。 在 A 中,此 FK 的列是唯一且可为空的。这意味着,一个 B 仅被引用为一个 A 的最大值。
但是休眠工具逆向工程正在生成pojos:
Pojo A 带有字段 B。好的,没错。 Pobo B 带有一组 A。不,不是,应该是单个字段 A。
怎么了?我错过了什么?
这是我的 reveng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-reverse-engineering SYSTEM "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd" >
<hibernate-reverse-engineering>
<type-mapping>
<sql-type jdbc-type="BIGINT" hibernate-type="java.math.BigInteger" />
<sql-type jdbc-type="NUMERIC" precision="19" hibernate-type="java.math.BigInteger"/>
<sql-type jdbc-type="NUMERIC" precision="10" not-null="true" hibernate-type="int"/>
<sql-type jdbc-type="NUMERIC" precision="10" not-null="false" hibernate-type="java.lang.Integer"/>
<sql-type jdbc-type="NUMERIC" precision="4" not-null="true" hibernate-type="byte"/>
<sql-type jdbc-type="NUMERIC" precision="4" not-null="false" hibernate-type="java.lang.Byte"/>
<sql-type jdbc-type="OTHER" hibernate-type="timestamp"/>
</type-mapping>
<table-filter match-name="MLOG.*" exclude="true" />
<table-filter match-name="RUPD.*" exclude="true" />
<!-- Forzamos a que el id sea Integer. Al eliminar el autoincremental hibernate pasa este campo a int.-->
<!-- Se cambia el codigo para que no afecte el tipo-->
<!--
<table name="cpanel_bloque_canal" catalog="ob_cpanel">
<primary-key>
<key-column name="idBloque" type="java.lang.Integer"/>
</primary-key>
</table>
-->
【问题讨论】:
-
你能发布相关的hibernate.reveng.xml文件吗?
标签: java hibernate reverse-engineering hibernate-tools