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.