Grails ignorando a anotação @id
-
05-07-2019 - |
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!
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