0

SQLServer2008ビューからデータをプルする必要があるGrailsプロジェクトがあります。ビューから基本的な選択を行う必要があります。

ドメインクラスをビューにマップできるようなビューの構成設定はありますか?

または、次のような生のSQLを使用する必要があります。

db.rows("SELECT foo, bar FROM my_view")
4

1 に答える 1

1

SQLを使用できます。たとえばgroovy.sql.Sql、他の同様の質問の回答で提案されているように、SQLを使用できますが、ドメインクラスでも使用できます。ドメインクラスを作成し(適切な名前を使用)、そのテーブル名をビューの名前として指定すると、そこから選択できます。もちろん、作成と更新で問題が発生しますが、読みたいだけの場合は問題ありません。

class SomeDomainClass {
   String foo
   Integer bar
   static mapping = {
      table 'my_view'
   }
}

クラスにMyViewという名前を付ける場合、命名規則が適用されるため、マッピングは必要ありませんが、ビューに裏打ちされているという事実とは関係がないため、これはクラスにとって不適切な名前になります。

「create」、「create-drop」、または「update」に設定されたdbCreateを使用する場合にも問題が発生することに注意してください。これは、Hibernateがテーブルを作成しようとするためですが、実際の問題は発生せず、無視できるものを表示するだけです。 「テーブル'my_view'はすでに存在するため、作成できませんでした」などのエラー。そして、データベース移行の使用に移行すると、これはまったく問題になりません。

于 2013-03-09T19:29:09.070 に答える