Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2006, 14:23
jvagliat
 
Fecha de Ingreso: marzo-2005
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
hibernate - problema

hola,

Estoy dando mis primeros pasos con hibernate y me he topado con un problema que me tiene a mal traer.

Les cuento. En mi modelo tengo las clases User y Office. Un user pertenece a una oficina y una oficina puede tener muchos usuarios. El problema viene por este lado: no me deja borrar una oficina cuando tiene usuarios. Los mensajes de las excepciones no me resultan muy significativos:

WARN - SQL Error: 1205, SQLState: HY000
ERROR - Lock wait timeout exceeded; try restarting transaction
ERROR - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC
batch update
...
Caused by: java.sql.BatchUpdateException: Lock wait timeout exceeded; try
restarting transaction


Los archivos de mapeo son los siguientes:

<class name="User"
table="users"
dynamic-insert="true"
dynamic-update="true">

<id name="name" column="email" type="string">
<generator class="assigned"/>
</id>

<many-to-one
name="office"
column="office_id"
class="Office"
not-null="false"/>

</class>

<class name="Office"
table="offices"
lazy="false"
dynamic-insert="true"
dynamic-update="true">

<id name="id" type="long">
<generator class="native"/>
</id>

<property name="type" type="string" not-null="true"/>
<property name="name" type="string" not-null="true"/>

</class>

Si le borro los usuarios borra bien la oficina. Alguien me dice que estoy mapeando mal? Como tengo que hacer las definiciones para que me permita borrar oficinas y simplemente le ponga nulls a los usuarios a referenciaban a ellas?

gracias, saludos, pablo.