2009-06-16 9 views
0

Grailsで既存のデータベースを使用しようとしています。私DataSource.groovyはこれで始まり:Grails @Id Annotationを無視する

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

} 

次のように私は私のクラスに注釈を付けていますので、

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 

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

を私は次のエラーを取得する生成されたコードを実行するとGrailsはregexp_idの@Idアノテーションを無視しているようです。 その中心ですか?

データベースを変更して、regexp_idの代わりにidを使用する予定です。しかし、私はあまりにもすべきではありません。

アイデア?

ありがとうございます!

+0

プライマリキーをidに変更し、pojoをregennedしてgrailsアプリケーションを再起動して、今すぐ動作します。しかし、私はすべての主要フィールドを単にidと呼ぶという考えが嫌いです。プラス私はドロップして、すべての私の外来のキー制約を作成しました。だから私はまだ解決策を望んでいる。 –

答えて

0

ええと、整数フィールドの名前を付けて、テーブルのregexp_idカラムにそのプロパティを指すよう@Columnアノテーションを置くだけで、あなたは離れているかもしれません。

+0

私はあなたが正しいと確信しています。私はそれをテストすることを望んでいたが、私はこの時点で戻って行く道を遠くに行ったことが判明した。 ありがとう! –

関連する問題