問題タブ [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.
inheritance - 抽象クラスのTablePerHierarchyは常にfalseですか?
Grails GORM ガイドによると、 tablePerHierarchy が false に設定されていない限り、ドメイン クラスのサブクラスは親クラスと同じテーブルを共有します。
「abstract」キーワードが原因で次のマッピング ステートメントが無視されるかどうかについての情報が見つかりません
私のデータベースには Item テーブルがなく、サブクラスごとに 1 つのテーブルが含まれています (tablePerHierarchy==false の状態が期待されます)。
アイテムを具象化する必要がありますが、検証では許可しませんか? 作成フォームで <select> を使用して選択されたサブクラスを持つ 1 つの ItemController を用意する予定です。
grails - Grailsの文字列以外のタイプのマップ
マップを含む単純なドメインクラスを作成しました。
バーマッピングは、次のようにsthとして作成されます。
... http://www.grails.org/GORM+-+Collection+Typesに記載されているとおり:
静的hasManyプロパティは、マップ内の要素のタイプを定義します。マップのキーは文字列でなければなりません。
今私の質問は-文字列以外の値のマップを作成することは可能ですか?純粋なHibernate(要素マッピング)を使用してそれを達成できます-これをGrailsに移植する方法はありますか?
grails - Grailsでの休止状態のセッションからオブジェクトをどのように切断しますか?
これを実行しようとしていますが、エラーが発生します。
「同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられていました」
休止状態のセッションからdbObjectを削除する必要があるようです。
hibernate - Grailsから除外されたHibernateロード関数?
Grails hibernateプラグインがhibernateロード機能をサポートしていないことに気づきましたか?誰かがそれがなぜであるか知っていますか?私が見たすべてのドキュメントでは、dbからオブジェクトを削除するための受け入れられた方法は、オブジェクトIDの後にdelete()を付けてget()を実行することであるようです。これは機能しますが、不要なデータベースヒットを引き起こします。これは意識的な設計上の決定でしたか?
grails - 1つのドメインに2つのbelongsToがあることを解決する方法
私は次のドメインを持っています:ユーザー、役割、会社。ユーザーとロールの関係はm:n、会社とユーザーの関係は1:m、ユーザーと会社の関係は1:1です。ユーザードメインの定義に問題があります。ここにあります:
user.companyが割り当てられた会社を教えてくれるように、ユーザーから会社にアクセスしたいと思います。この変更は許可されていません:
エラーは次のとおりです。
これも実行するオプションではないことに注意してください。
User-Roleにはm:nがあるため(「authorities」変数でもすでに指定されています)。
他の回避策はありますか?ありがとう。
hibernate - Grailsで列挙型のコレクションをどのように永続化しますか?
Grailsで列挙型のコレクションを永続化する方法に関するアイデアはありますか?
Groovy列挙型:
この列挙型をGrailsドメインクラスで使用したいと思います。ドメインクラスは次のようになります。
create.jspで、複数のMyEnumを選択できるようにし、次の行を追加したいと思います。
私が得ている問題は、新しいテスターを作成しようとすると、次のような500エラーが発生することです。
grails - Grailsでの継承に使用されるDB列「クラス」にインデックスを追加するにはどうすればよいですか?
階層ごとのテーブル継承を使用する場合、GORMはインスタンスのクラス名を格納する「クラス」列を作成します。
SQLクエリの多くにが含まれているため、この列にDBインデックスを追加したいと思いますwhere class='com.myapp.Mychildclass'
。しかし、私はこのコードで成功しませんでした:
インデックスを作成せずに、このコードのさまざまなバージョンを試しました。
どうやってやるの?
grails - GORM で nvarchar をテーブル列に設定する方法
列のタイプを nvarchar(160) に設定するにはどうすればよいですか? ここにあるサンプル コードをターゲットに関連付けるのに苦労しています。私はすでにこれを試しました:
次のエラーが発生しました: 原因: org.hibernate.MappingException: 次のタイプを判別できませんでした: nvarchar、テーブル: twitter_status、列: [org.hibernate.mapping.Column(text)]
最後に、データベース サーバーに MySQL 5 を使用しています。
前もって感謝します。
orm - GORM DSL を使用して複数のドメイン オブジェクトを同じテーブルにマッピングする
レガシー データベース上に grails アプリを作成しています。
いくつかの異なるドメイン オブジェクト (以下の例では Type1、Type2、および Type3) を作成したいテーブルがあります。
テーブルは次のようになります。
行が異なる概念を表すため、それぞれが「説明」という名前のフィールドを含み、特定の「タイプ」に対応する 3 つの異なるドメイン クラスを作成したいと思います。
行をタイプ別にフィルタリングできるような制約はありますか?
つまり、次のようなことができますか:
次に、 Type1.list() が次のようなクエリを生成することを期待します。
アップデート :
実際、ドキュメントには、これを実現するためにディスクリミネーターを使用できると書かれています。
ただし、次のようにクラスを設定しようとしました:
休止状態の SQL トレースを有効にしましたが、代わりに
そうですか
ディスクリミネーターが私のカスタム列名を完全に無視しているようです:-(
Grails 1.2.1 を使用しています
grails - AfterInsert/AfterUpdateでオブジェクトを変更する
同じドメインオブジェクトのプロパティであるパラメータに基づく計算結果を保持するドメインオブジェクトがあります。ユーザーがパラメーターを変更するたびに、パラメーターが再計算されてデータベースに適切に保存されることを確認したいと思います。
私はafterInsert(最初に計算が正しいことを確認するため)とafterUpdateでそれを行おうとしています。
ただし、私の計算はオブジェクト自体を変更しようとしているため、機能していません。さまざまな休止状態の例外がスローされます。
afterUpdateコードをトランザクションに入れようとしましたが、それは役に立ちませんでした。ここで循環依存の問題が発生しているのではないかと思います。
私が今得ている例外は次のとおりです。
GORMイベントは、より単純なユースケース向けに設計されていますか?保存中のオブジェクトを変更することは、道のりではないと結論付けたくなります。