0

独自の NoSQL DB を使用する Grails アプリケーションがあります。休止状態プラグインを無効にしています。多くの制約が定義され、永続性を扱ういくつかの Java サービスを呼び出す save() および get() の独自の実装を持つ多くのドメイン クラスがあります。すべてが正常に機能しています。

しかし今、私たちは顧客と契約を結び、いくつかのものを顧客の MySQL DB に直接保存しました。最初は簡単なこと。DB 接続を構成し、休止状態プラグインを有効にして、それに対処する新しいドメイン クラスを作成しました。テストアプリではすべて正常に動作していますが、休止状態プラグインをメインプロジェクトに有効にすると、起動しなくなりました。

Hibernate はすべてのドメインを DB 内のテーブルにマップしようとしていますが、もちろんそれらは存在しません (NoSQL DB を使用しているため)。

私の質問は次のとおりです。複数のドメインに対してのみ休止状態を有効にできますか? または、一部のドメインに hibernate/gorm を使用しないように指示できますか? それともパッケージごと?Grails は同じプロジェクトで複数の DB をどのように処理していますか?

4

2 に答える 2

2

複数のデータソースを設定して、NoSQL db と MySQL db を処理できます。次に、永続化のために Java サービスを使用するドメイン オブジェクトが残ります。

それらに制約を使用していますが、動的ファインダーのような Gorm Static API を活用していますか? それらを休止状態の実装から抽象化するには、それらをクラスに移動するgrails-app/domainか、クラスでsrc/groovy使用static mapWith = 'none'します。

于 2013-08-15T13:53:46.037 に答える
1

mapWithこれは、ドメイン クラスのオプションで構成できます。

関連する SO の質問:ドメイン クラスの永続性を無効にすることは grails で可能ですか?

于 2013-08-15T13:53:27.973 に答える