2014-06-18 150 views
0

我要表Usuario_tbl和RolUsuario_tbl。我生成有這個的.hbm.xml Hibernate逆向工程休眠多對一

<hibernate-mapping> 
    <class name="co.ejemplo.modelo.UsuarioTbl" table="usuario_tbl" catalog="structse_db"> 
     <id name="idUsuario" type="java.lang.Integer"> 
      <column name="id_usuario" /> 
      <generator class="identity" /> 
     </id> 
     <property name="login" type="string"> 
      <column name="login" length="50" not-null="true" unique="true" /> 
     </property> 
     <property name="clave" type="string"> 
      <column name="clave" not-null="true" /> 
     </property> 
     <property name="habilitado" type="byte"> 
      <column name="habilitado" not-null="true" /> 
     </property> 
     <property name="fechaAlta" type="timestamp"> 
      <column name="fecha_alta" length="19" /> 
     </property> 
     <property name="fechaBaja" type="timestamp"> 
      <column name="fecha_baja" length="19" /> 
     </property> 
     <set name="rolUsuarioTbls" table="rol_usuario_tbl" inverse="true" lazy="true" fetch="select"> 
      <key> 
       <column name="login" not-null="true" /> 
      </key> 
      <one-to-many class="co.ejemplo.modelo.RolUsuarioTbl" /> 
     </set> 
    </class> 
</hibernate-mapping> 

<hibernate-mapping> 
    <class name="co.ejemplo.modelo.RolUsuarioTbl" table="rol_usuario_tbl" catalog="structse_db"> 
     <id name="idUsuarioRol" type="java.lang.Integer"> 
      <column name="id_usuario_rol" /> 
      <generator class="identity" /> 
     </id> 
     <many-to-one name="usuarioTbl" class="co.ejemplo.modelo.UsuarioTbl" fetch="select"> 
      <column name="login" not-null="true" /> 
     </many-to-one> 
     <property name="rol" type="string"> 
      <column name="rol" length="50" not-null="true" /> 
     </property> 
    </class> 
</hibernate-mapping> 

Java模型當我嘗試使用一個RolUsuarioTbl getHibernateTemplate().save(rolUsuarioTbl)休眠,以節省告訴我所需要的一切UsuarioTbl性質,但我只已在UsuarioTbl中設置登錄名。

如何在UsuarioTbl中只保存登錄屬性的RolUsuarioTbl

回答

0

多對一的關係必須由兩個表的代碼,否則hibernate不會識別父表的子代。