Pergunta

Estou tentando usar um banco de dados existente com Grails. Meu DataSource.groovy começa com isso:

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

}

Eu tenho minha aula anotada da seguinte maneira:

@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;
    }
        . . . 

Quando executo o código gerado, recebo o seguinte erro:

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

Parece que o Grails está ignorando a anotação @ID no regexp_id. Isso é corect?

Planejo alterar o banco de dados para usar o ID em vez de regexp_id. Mas eu não deveria ter também.

Alguma ideia?

Obrigado!

Foi útil?

Solução

Hmm, você pode ter escapado ao nomear o ID do campo inteiro e, em seguida, apenas colocando a anotação @column para apontar essa propriedade na coluna REGEXP_ID na tabela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top