Ich versuche, eine vorhandene Datenbank mit Grails zu verwenden. Mein DataSource.groovy beginnt mit diesem:Grails Ignorieren @Id Anmerkung
@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;
}
. . .
Wenn ich laufe den generierten Code ich folgende Fehlermeldung erhalten:
import org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsAnnotationConfiguration
dataSource {
configClass = GrailsAnnotationConfiguration.class
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "12345"
}
ich meine Klasse wie folgt kommentiert haben
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
So Es scheint, dass Grails die @ Id-Annotation auf regexp_id ignoriert. Ist das richtig?
Ich plane, die Datenbank zu ändern, um ID anstelle von regexp_id zu verwenden. Aber ich sollte nicht haben.
Irgendwelche Ideen?
Danke!
Ich habe den Primärschlüssel in ID geändert, den Pojo neu generiert, die Grails App neu generiert und jetzt funktioniert es. Aber ich mag die Idee nicht, jedes Schlüsselfeld einfach id zu nennen. Außerdem habe ich alle meine Fremdschlüsseleinschränkungen gelöscht und erstellt. Ich hoffe also immer noch auf eine Lösung. –