Grails ignorant l'annotation @ Id
-
05-07-2019 - |
Question
J'essaie d'utiliser une base de données existante avec Grails. Mon DataSource.groovy commence par ceci:
import org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration
dataSource {
configClass = GrailsAnnotationConfiguration.class
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "12345"
}
J'ai ma classe annotée comme suit:
@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;
}
. . .
Lorsque j'exécute le code généré, l'erreur suivante apparaît:
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
Il semble donc que Grails ignore l’annotation @Id sur regexp_id. Est-ce que c'est correct?
Je prévois de changer la base de données pour utiliser id au lieu de regexp_id. Mais je ne devrais pas en avoir aussi.
Des idées?
Merci!
La solution
Hmm, vous auriez peut-être eu du mal à nommer l'id du champ Integer, puis à simplement mettre l'annotation @Column pour qu'elle pointe cette propriété dans la colonne regexp_id de la table.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow