Recibo el error "ORA-00972: el identificador es demasiado largo" al guardar un objeto de clase de dominio.ORA-00972: el identificador es demasiado largo - La mejor estrategia para evitarlo en Grails
Caused by: org.hibernate.exception.SQLGrammarException: could not initialize a collection: [com.intelligrape.model.Address.studentsForPermanentAddressId#79366215]
Cuáles podrían ser las posibles soluciones para resolver este problema, excepto la reducción de la longitud del campo studentsForPermanentAddressId. La razón es que esta es una tabla de base de datos heredada que no puedo modificar.
EDIT: Se agregó la descripción de la clase de dominio que se le preguntó por Rob Hruska
package com.intelligrape.model
class Address {
String address1
String address2
String boxNumber
String city
Long stateLid
String province
String zipCode
Long countryLid
Double latitude
Double longitude
Long radius
static hasMany = [studentsForPermanentAddressId: Student, studentsForLocalAddressId: Student]
static constraints = {
address1 nullable: true
address2 nullable: true
boxNumber nullable: true, size: 1..25
city nullable: true, size: 1..30
stateLid nullable: true
province nullable: true, size: 1..64
zipCode nullable: true, size: 1..15
countryLid nullable: true
latitude nullable: true
longitude nullable: true
radius nullable: true
studentsForPermanentAddressId nullable: true
studentsForLocalAddressId nullable: true
}
}
Eso es interesante, el límite de longitud de Oracle es 30, y 'studentsForPermanentAddressId'" solo "tiene 29 caracteres. – NullUserException
@NullUserException - No creo que 'studentsForPermanentAddressId' sea el nombre de la columna de la base de datos real; es probable que se esté asignando a algo como 'students_for_permanent _...'. –
@Mohd: ¿Puedes proporcionar el código de clase de dominio que define la relación en cuestión? –