問題タブ [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 - Grails/GORM ドメイン オブジェクトをセッションに保存する - なぜですか?
私は Grails/GORM を学習していますが、現在のベスト プラクティスは、ドメイン オブジェクトをセッションに保存しないことです (潜在的な修正については、 http://jira.codehaus.org/browse/GRAILS-978を参照してください)。
回避策は簡単です。ドメイン オブジェクトの参照 ID をセッションに保存し、次のリクエストでオブジェクトを再取得します。
私の質問は、ドメイン オブジェクトをセッションに安全に保存できないのはなぜですか? 私はその背後にある技術を理解しようとしています。
ありがとう!
grails - o.errors.allErrors.each { println it } ドメイン オブジェクトの保存に失敗すると、デフォルトで
Grails/GORM を使用してドメイン オブジェクトを永続化するとき、なぜ save() 呼び出しが失敗するのか疑問に思うことがよくあります。
これは、ロジックを追加することで簡単に解決できます。
ただし、これを .save() を実行するすべての場所に追加すると、多くの重複コードが追加されます。DRY の精神で、Grails/GORM を構成して、保存エラーをコンソール (stderr) に自動的に出力したいと考えています。それは可能ですか?そうでない場合、それを可能にするためにGORMを拡張するにはどうすればよいですか?
hibernate - Grails のページング結果に一貫性がない
Grails アプリケーションでページングを行っています。特別な並べ替えを行っているため、便利な並べ替え/ページング方法を使用できません。サーバー側のページングコードは次のとおりです。
コードのセクションがコメントアウトされていることに気付くでしょう。通常、特別な並べ替えを実行できるようにコメントを外しますが、この問題の原因となる変数の数を減らすためにコメントを外します。
結果の 4 ページ目を見ると、特定の人のリストが表示されます。結果の 4 ページ目をリロードすると、わずかに異なるリストが表示されます。8 人分シフトされています。
なぜ一貫性のない結果が得られるのか、誰にも分かりますか? 結果の 4 ページ目を表示するたびに、同じ 100 人が得られると予想します (推測できない場合は、人々の名前を表示しています)。「オフセット」、「最大」、および「並べ替え」の値は、両方の要求で同じです。
どんな助けでも大歓迎です。ありがとう、
アンドリュー
アップデート....
例外が発生する場合を除いて、これはより簡単な方法です。「createAlias」行を削除すると、例外は発生しません。残念ながら、関連付けられたテーブルに参加するにはエイリアスが必要です。
例外:
原因: java.lang.IllegalArgumentException: [list] への呼び出しはここではサポートされていません
grails.orm.HibernateCriteriaBuilder.invokeMethod(HibernateCriteriaBuilder.java:847)で
ClientContactController$_closure21_closure39_closure44.doCall で (ClientContactController:494)
hibernate - Grails で GORM を使用する場合の並行性
生の SQL を使用してカウンターを更新するカウンター関数があるとします。
データベースは、カウンターへの 2 つの同時呼び出しが期待どおりに処理されることを確認します。つまり、すべての呼び出しがカウンターを 1 つのインクリメントで更新し、更新が失われないようにします。
生の SQL コマンドを発行してこれを実行するのではなく、GORM を使用したいと思います。それを行う単純な方法は、次のようなものです。
この場合、2 つのスレッドが同時に updateCounter() メソッドを呼び出すと、更新が失われる可能性があると想定します。この並行性の問題を処理するための正しい「Grails/GORM-way」は何ですか?
grails - Grails/GORM での従来のマッピング: 1:N 関係の 1 つのドメイン クラスと 2 つのテーブル
従業員と給与の 2 つのテーブルが 1:N の関係にあるとします (1 つの給与を多くの従業員に関連付けることができます)。
プレーン SQL では、テーブルは次のように結合されます。
次の GORM を利用したドメイン クラスを仮定すると、従来のデータベース構造をクラスにどのようにマッピングすればよいでしょうか?
明確化 #1:両方のテーブルからのデータを含む 1 つのドメイン クラスのみが必要です。したがって、別のクラスを追加することはオプションではありません。
明確化 #2:私が答えを見つけようとしている質問は、単に「Grails/GORM を使用して 2 つのテーブルを 1 つのクラスにマップするにはどうすればよいか」ということです。それが不可能であると思われる場合は、質問を再度述べるのではなく、回答で明確に述べてください。
grails - GORMの複合外部キー列
GORMで複合外部キーの列名をカスタマイズする必要がありますが、その方法を示すドキュメントが見つかりませんでした。PK列をカスタマイズする方法と、単一列のFKをカスタマイズする方法は知っていますが、複数列のFKはカスタマイズできません。それは可能ですか?
ありがとう。
grails - レガシーデータベース上でのGrailでの多対多関係のモデリング
LAMP上に構築された単純なチケットロギングアプリケーションがあります。
私は現在、グライルで遊んでいます。データベースをあまり変更せずに、既存のMySqlデータベースを使用するデモアプリを作成したいと思います。
データベースには多対多の関係があります。「client」テーブルは、「cliet_contact」テーブルを介して「user」テーブルにマップされます(つまり、標準の「client_user」規則ではありません)。
grail 1.1を使用してこれをgrailsドメインクラスに変換するにはどうすればよいですか?
どんな助けでもいただければ幸いです。
ありがとう!