Pregunta

Estoy tratando de usar una base de datos existente con Grails. Mi DataSource.groovy comienza con esto:

import org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration
dataSource {
    configClass = GrailsAnnotationConfiguration.class
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    username = "root"
    password = "12345"

}

Tengo mi clase anotada de la siguiente manera:

@Entity
@Table(name = "regexpression", catalog = "tigger")
@SuppressWarnings("serial")
public class Regexpression implements Serializable {

    /**
     * Attribute regexpId.
     */
    private Integer regexpId;

    . . . 

    /**
     * <p> 
     * </p>
     * @return regexpId
     */
    @Basic
    @Id
    @GeneratedValue
    @Column(name = "regexp_id")
        public Integer getRegexpId() {
        return regexpId;
    }
        . . . 

Cuando ejecuto el código generado, aparece el siguiente error:

org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error evaluating expression [regexpressionInstance.id] on line [40]: groovy.lang.MissingPropertyException: No such property: id for class: org.maflt.flashlit.pojo.Regexpression

Por lo tanto, parece que Grails está ignorando la anotación @Id en regexp_id. ¿Es eso correcto?

Planeo cambiar la base de datos para usar id en lugar de regexp_id. Pero no debería haberlo hecho también.

¿Alguna idea?

¡Gracias!

¿Fue útil?

Solución

Hmm, puede que te hayas salido con la tarea de nombrar el ID del campo Integer, luego simplemente colocando la anotación @Column para apuntar esa propiedad a la columna regexp_id en la tabla.

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