問題タブ [grails-orm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - GORM Hibernate クエリ
次の Grails ドメイン オブジェクトがあります。
ProductType
すべての とその必須のを取得したいと思いAttribute
ます。Attribute
さらに、選択したs を積極的に読み込み、プロパティ別に並べ替えたいと思いseq
ます。あらゆる種類の HQL および Criteria クエリを試しましたが、理解できないようです。
hibernate - GORM/Hibernateを使用した遅延読み込みクエリ
MyGrailsアプリには次のドメインオブジェクトがあります
私のDBには7ProductType
秒あり、それぞれに3Attribute
秒あります。クエリを実行すると:
7つのインスタンスProductType
が返されることを期待していますが、実際には21(7 x 3)を取得します。上記と同等のSQLクエリを実行すると、結果セットには21行になることを理解しています。
しかし、Hibernate / GORMを介してこれらの結果を取得すると、次のようなものが得られるはずだと思いました。
ちなみに、上記のクエリからeager-loadingを削除すると、ProductType
期待どおりに7秒が取得されます。私は何が欠けていますか?
grails - 最初の一致を見つける - DomainClass.findAll()[0] の代替
DomainClass.findAll()[0]
通常は によって取得される一連のドメイン オブジェクトの最初のドメイン オブジェクトを取得するよりも、短くてクリーンな方法はありますfindAll()
か?
理想的には欲しいのですDomainClass.find()
が、そのようなファインダーは存在しません。
grails - addTo* および RemoveFrom* GORM/Grails メソッドをオーバーライドするには?
Grails/GORM が提供する動的メソッド addTo* をオーバーライドしようとしましたが、うまくいきません。
コードは次のとおりです。
問題は、addToPlayers を呼び出すときに、次の例外が発生したことです。
基本的に、コレクション「プレーヤー」を自分で初期化する必要があるようです。
その前に、GORM メカニズムについていくつかの洞察を得たいと思います。
1 - GORM のコレクションのデフォルトの実装は何ですか (java.util.Set の実装であることは知っていますが、どの実装ですか?)
2 - それは正しいことですか (addToPlayers メソッドをオーバーライドすることによって) ? (私の唯一の必要性は、マッチ インスタンスでプレーヤーが追加/削除されるたびにオブジェクト MatchPlayer を作成/削除することです)。はいの場合、なぜ例外があるのですか? このためのより良い設計はありますか?
ありがとうございました。
grails - Grails で 1 か月のすべてのイベントを選択する
私はgroovy/grailsが初めてで、基本的に次のように、1か月のすべての投稿を検索する基準検索を実行しようとしています:
ドメインクラスは
さて、なぜこの例外が発生するのでしょうか?
org.codehaus.groovy.runtime.InvokerInvocationException: org.hibernate.QueryException: プロパティを解決できませんでした: job.happening of: JobRegistration
database - Grails の複数列インデックス
Grails で複数列のインデックスを定義する方法を誰かが説明できますか? ドキュメントはせいぜいまばらです。
たとえば、これはまったく機能していないようです: http://grails.org/GORM+Index+definitions
これである程度運が良かったのですが、結果はせいぜいランダムに思えます。あるドメインクラスで機能する定義は、別のドメインクラスに適用すると機能しません (もちろん名前が異なります)。 http://www.grails.org/doc/1.1/guide/single.html#5.5.2.6%20Database%20Indices
いくつかの実用的な例と説明をいただければ幸いです。
hibernate - Hibernate トランザクション境界
私は (Grails アプリで) Hibernate を使用しており、トランザクション境界はサービス メソッドです。つまり、サービス メソッドが呼び出されるたびにトランザクションが開始され、サービス呼び出しが完了するたびに、トランザクションがロールバックまたはコミットされます。
データベース操作の 1 つによってデータベース トリガーが起動され、このトリガーが永続データに変更を加えた場合、これらの変更は、サービス呼び出しが完了したときにロールバックまたはコミットされますか? それとも、トランザクションの "外部" のトリガーによって変更が加えられますか?
ありがとう、ドン
grails - Grails で、ドメイン クラスの SQL Server スキーマ名を宣言するにはどうすればよいですか?
私は最近、Grails について読み始めました。SQL Server セキュリティ スキーマを使用して、GORM によって生成されたテーブルをグループ化したいと考えています。ただし、このタスクの実行方法を説明するリファレンスが見つからないようです。私もHibernateが初めてで、これが可能かどうか知りたいです。ありがとうございました。
mysql - Grails でトランザクションを機能させる方法
まとめ 親は多くの子を持つことができます。親を追加した後、子を追加するときにエラーが発生した場合、トランザクション全体がロールバックされるようなサービスをどのように記述しますか。たとえば、親 p1 を追加し、子 c1 を正常に追加した後、子 c2 を追加するときにエラーが発生した場合、p1 と c1 の両方をロールバックする必要があります。
詳細な問題
次のコードでは、子の name プロパティに一意の制約があります。したがって、別の親に同じ名前を 2 回追加しようとすると、子レコードは追加されず、親レコードはロールバックされます。
私の問題は、親レコードがロールバックされていないことです。
Grails 1.2-M2 および Tomcat 6.018 で MySQL と InnoDB を使用しています。
情報源
次の単純なドメイン クラスがあります。
親:
子
簡単なデータ入力 GSP
コントローラ
サービス
orm - GrailsGORMをスタンドアロンで使用する
現在、Grailsフレームワークの外部でスタンドアロンのGrailsからGroovyORMレイヤーを使用する方法を考えています。そのためのドキュメントエントリがありますが、ZIPファイルは空のページにのみリンクしています。Grails 1.2-M3をダウンロードしましたが、ドキュメントにも何も見つかりませんでした。
誰かが現在の状態が何であるか、そしてこれを達成する方法を知っていますか?