Domanda

Sto cercando di utilizzare un database esistente con Grails. My DataSource.groovy inizia con questo:

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

}

Ho annotato la mia classe come segue:

@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 eseguo il codice generato ottengo il seguente errore:

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

Quindi sembra che Grails stia ignorando l'annotazione @Id su regexp_id. È corretto?

Ho intenzione di cambiare il database per usare id invece di regexp_id. Ma non avrei dovuto farlo anch'io.

Qualche idea?

Grazie!

È stato utile?

Soluzione

Hmm, potresti esserti allontanato con la denominazione dell'ID del campo Intero, quindi semplicemente mettendo l'annotazione @Column per puntare quella proprietà nella colonna regexp_id nella tabella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top