Pregunta

Desde el sitio Grails: http://www.grails.org/doc/1.0.x/guide/5.%20Object%20Relational%20Mapping%20 (GORM) .html

class Airport {
 String name
 static hasMany = [flights:Flight]
}
class Flight {
 String number
 static belongsTo = [airport:Airport]
}

A continuación, llamando delete() en una instancia de aeropuerto se eliminarán todos los objetos de vuelos asociados (ya que belongTo aeropuerto). Si tuviera que eliminar una executeUpdate utilizando aeropuertos hay todavía esperaba que elimine los vuelos?

Gracias

¿Fue útil?

Solución

No es así. Aquí está un ejemplo rápido:

 def a0 = new Airport(name: 'Dulles').save()
 def f0 = new Flight(number: '1000', airport: a0).save()

 assert 1 == Airport.count()
 assert 1 == Flight.count()

 Airport.executeUpdate("delete Airport a where a.name = 'Dulles'")

Los rendimientos (abreviado):

Caused by: java.sql.SQLException: Integrity constraint violation FKB4318470B2E8D1BA table: FLIGHT in statement [delete from airport where name='Dulles']
        at org.hsqldb.jdbc.Util.throwError(Unknown Source)
        at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        ... 27 more

No es un problema no resuelto de hibernación que solicita la posibilidad de especificar la cascada en la consulta aquí .

Esto también se apoya en la lista de correo Griales aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top