2017-07-20 15 views
0

私のプロジェクトでは2つのデータベースを使用していますが、両方のデータベースで列名が異なります。だから私は設定ファイルにフラグを定義し、ドメインに依存関係を注入しました。groovyドメインに依存関係を注入できますか?

例: - >

class MRAffiliate { 

    transient def grailsApplication; 

    String companyName; 

    String annotations; 

    static mapping = {   
     table name: "affiliati"//, schema: "public" 
     id generator:'sequence', params:[sequence:'affiliati_seq'] 
     id column: "id"//, sqlType: "int4"; 
     if (grailsApplication.config.com.dogmasystems.postgres==true){ 
      companyName column: "ragione_sociale"; 
     } else { 
      companyName column: "ragione_sociale", sqlType: "string"; 
     } 
     if (grailsApplication.config.com.dogmasystems.postgres==true){ 
      annotations column: "annotazioni"; 
     } else { 
      annotations column: "annotazioni", sqlType: "string"; 
     } 
     version false; 
    } 
} 

は、データベース

に応じて列名を定義する他の方法があり、このコードを実行しながら、私は、エラーを取得しています。 this domain classこれを参照してください -

+0

grailsバージョンは@Szymonですか? –

+0

grailsバージョン:2.4.4 –

+0

静的コンテキスト( 'mapping'クロージャ)内からインスタンス変数(' grailsApplication')にアクセスしようとしています。静的コンテキストからインスタンス状態にアクセスすることはできません。それは非官能的なので、言語はそれを許可しません。 –

答えて

2

Holders.grailsApplication.config.xxxを試してみません エラーが 「:クラスのgrailsApplication org.codehaus.groovy.grails.orm.hibernate.cfg.HibernateMappingBuilderそのようなプロパティがMRAffiliateエラー評価ORMマッピングがドメインをブロック」であり、マッピングブロックで設定を使用します。

+0

ありがとう、それは働いています –

+0

あなたのために働いていることを知ってよかった..答えを受け入れることを検討してください:) –

関連する問題