問題タブ [hibernate-criteria]
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 - Criteria API で悲観的ロックを指定するには?
Criteria API を使用して休止状態のオブジェクトのリストを取得しています。ただし、同時に実行されている別のスレッドが正確なオブジェクトを取得し、悲観的ロックがない場合はスレッドの 1 つだけが成功するため、これらのオブジェクトをロックする必要があります。
以下のようにしてみましたが、うまくいきません。
更新: このステートメントの後に更新を実行しているため、両方のスレッドが異なる行を読み取るか、少なくとも 2 番目のスレッドが最初のスレッドがトランザクションを完了してロックを離れるまで待機する必要があります。
そして、休止状態で生成されたクエリは以下のとおりです。
更新: Pascal Thivent (Pascal に感謝します) が言及したように、3.5.2 バージョンのバグのようです。私はメンバーとして参加し、問題を監視しています。うまくいけば、それは次のリリースに含まれます。
ただし、ここで別のアプローチを使用してみましたsession.buildLockRequest()
...しかし、それを使用する方法がよくわかりませんでした。以下のコードを使用してもまったく効果がありません。
hibernate - Gormを使用して列のサブセットを照会する
次のドメインクラスがあるとします。
表示する必要のないリストビューがありますがlargeCoverArtImage
、GORM基準を使用して次のSQLクエリを実行するにはどうすればよいですか?
java - Hibernate Criteria API の複数結合
私の休止状態のエンティティは次のとおりです。
ドキュメントは次のようになります。
基本的に、私が書きたいクエリは次のとおりです。
休止状態の基準 API を使用してこれを行うにはどうすればよいですか?
java - 条件が埋め込みプロパティを参照している場合、プロパティを解決できません
Embedded クラス内のプロパティを参照する基準でクエリを作成できないようです。「entity.embedded.property」を使用すると失敗します。「entity.embedded.property」のエイリアスをそれ自体に作成すると、クエリが機能します...どんなヒントでも大歓迎です...
java - Hibernateアノテーション
MySQLでテーブルを作成しました。
'object_label'と列'id'および'name'。このテーブルに値を挿入しました。
Javaで、新しいクラス'ObjectLabel'を作成しました。
定義されたhibernate.cfg.xmlで:
私はテーブルからvaluseを取得したいので、サービスを見つけました:
空のリストを取得します。
データベースで'select* from' object_label''は値を返します)
私のコードの何の問題ですか?
ありがとう!
java - Hibernate Criteria とサンプル API の制限を克服するにはどうすればよいですか?
私は、当社が高度に構成可能なデータベース検索サービスを持っている立場にいます。このサービスでは、プログラムでクエリを構成することが非常に便利です。Criteria API は強力ですが、開発者の 1 人がデータ オブジェクトの 1 つをリファクタリングすると、ユニット テストを実行するか、さらに悪いことに、実際の運用環境でテストを実行するまで、基準の制限は違反していることを示しません。最近、リファクタリング プロジェクトの作業時間が予想外に 2 倍になりました。これは、プロジェクト計画のギャップであり、実際にどれくらいの時間がかかるかを知っていれば、おそらく別のアプローチをとっていたでしょう。
この問題を解決するために Example API を使用したいと思います。Java コンパイラーは、実際の POJO プロパティで「where」条件を指定している場合、クエリが失敗したことを大声で示すことができます。ただし、サンプル API には非常に多くの機能しかなく、多くの点で制限があります。次の例を見てください
ここでは、プロパティ「name」に対してクエリが実行されています (「P%」などの名前)。フィールド「name」を削除または名前変更すると、すぐにわかります。しかし、物件の「価格」はどうでしょうか。Product オブジェクトにはデフォルト値があるため除外されているため、「price」プロパティ名を除外フィルターに渡しています。「価格」が削除された場合、このクエリは構文的に無効になり、実行時までわかりません。ラメ。
もう 1 つの問題 - 2 つ目の where 句を追加するとどうなるでしょうか。
enableLike() の呼び出しにより、この例はプロモーション テキスト「最大 10% の割引」だけでなく、「最大 10,000,000 ドルの割引」またはその他の一致するテキストにも一致します。一般に、 enableLike() や ignoreCase() などの Example オブジェクトのクエリ全体の変更は、チェック対象のすべてのプロパティに常に適用できるとは限りません。
これが 3 番目の主要な問題です。他の特別な基準についてはどうでしょうか。標準のサンプル フレームワークを使用して、価格が 10 ドルを超えるすべての製品を入手する方法はありません。結果をプロモーションで降順に並べ替える方法はありません。製品オブジェクトが一部の製造元に結合されている場合、関連する製造元オブジェクトに基準を追加する方法もありません。製造元の基準で FetchMode を安全に指定する方法もありません (ただし、これは一般的に Criteria API の問題です - 無効なフェッチされた関係は黙って失敗し、時限爆弾のようになります)
上記のすべての例では、Criteria API に戻って、プロパティの文字列表現を使用してクエリを作成する必要があります。これも、サンプル クエリの最大のメリットを排除しています。
必要なコンパイル時のアドバイスを得ることができるサンプル API に代わるものは何ですか?
java - ハイバネート基準プロジェクション
質問のタイトルが示すように、いくつかのテーブル属性のみを照会する射影基準を作成しようとしています。
したがって、Person テーブル/クラスがあり、約 40 の属性があります。基準で属性の動的な数を取得する必要があります。たとえば、10、11、または 12 (SQL 用語select firstname, lastname from person
) とします。次のように実行していました。
retList
そして、要素が からのものではないことを返しますPerson.class
:
INFO [AWT-EventQueue-0] (UserGroupManagerApp.java127) - [Ljava.lang.Object;@14b9b80
FATAL [AWT-EventQueue-0] (Login.java78) - java.lang.ClassCastException: [Ljava.lang.Object; usergroupmanager.model.db.Person にキャストできません java.lang.ClassCastException: [Ljava.lang.Object; usergroupmanager.model.db.Person にキャストできません
助けてください。今のところ、40 以上の属性をすべてリストしていますが、クエリに時間がかかり、気に入りません。これを解決するのに役立つ代替ソリューションも探しています。私は読んだことResultTransformer
がありますが、私の場合はそれを使用する方法が見つかりませんでした。
java - 多対多の基準の予測を休止状態にする
編集>私は行き止まりになっています...主な理由を探し続けることができます..たとえば、複数のeq制限がある多対多の関係の簡単な基準を作成する方法を教えてください。ここに示す例では、英語とドイツ語を話す人を取得します...
私の状況はこのようなものです。私は2つのクラスの人と言語を持っており、関係があります。そして私は検索を行うための基準を使用しています-元を話すすべての人を取得します。英語とドイツ語
基準
面白いことに、1つの言語だけに設定すると、適切な人のリストが表示されますが、複数の言語には何も表示されないので、ベースを再確認して、2つの言語を話すように1人の人を特別に設定しました。しかし、何よりもヒントとなるのは、Set言語があるべき場所でのObject []の射影の結果、NULL値があるということです......
tnxを助けてください
grails - groovy / grails / 単体テスト / createCriteria.get
次の呼び出しをモックできます。
と:
でアドバイスされているように:
http://davistechyinfo.blogspot.com/2010/01/mocking-hibernate-criteria-in-grails.html
しかし、次の場合:
このアプローチは失敗します。おそらく、'get' はキーワードであり、'list' はキーワードではないためです。誰でもアドバイスできますか? を使用するメソッドの単体テスト カバレッジを単に放棄することなく、ドメイン クラスでこれをモックできるはずcreateCriteria().get{}
です。
提案は大歓迎です、
アレックス
sql - Hibernate 単純基準クエリ解決問題
私は非常に単純な条件クエリの問題に悩まされています:
もちろん、これはユーザーなしという結果になります。
SQLで私も試しました:
もちろんユーザーもいません
SQLの2つのソリューションは、あまり効果的ではないと思います:
他の:
これらの結果は良い情報を与えてくれますが、これが正しい方法だとは思いません。Criteria API を使用して Hibernate でこれを実装する方法について説明します。
または、DB に新しいテーブルが必要ですか?