Вопрос

Я пытаюсь использовать существующую базу данных с Grails.Мой DataSource.groovy начинается с этого:

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

}

Мой класс аннотирован следующим образом:

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

Когда я запускаю сгенерированный код, я получаю следующую ошибку:

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

Похоже, что Grails игнорирует аннотацию @Id для regexp_id.Это правильно?

Я планирую изменить базу данных, чтобы использовать id вместо regexp_id.Но мне тоже не следовало этого делать.

Есть идеи?

Спасибо!

Это было полезно?

Решение

Хм, возможно, вам удалось назвать идентификатор поля Integer, а затем просто добавить аннотацию @Column, чтобы указать это свойство на столбец regexp_id в таблице.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top