問題タブ [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.

0 投票する
22 に答える
152973 参照

java - JPA と Hibernate - 基準と JPQL または HQL の比較

CriteriaまたはHQLを使用することの長所と短所は何ですか? Criteria API は、Hibernate でクエリを表現するための優れたオブジェクト指向の方法ですが、Criteria クエリは HQL よりも理解/構築が難しい場合があります。

Criteria と HQL はいつ使用しますか? どのユースケースで何を優先しますか? それとも単に好みの問題ですか?

0 投票する
1 に答える
5813 参照

java - Hibernate の Criteria API はまだネストされたリレーションをサポートしていませんか

私は、Hibernate の Criteria API を、複雑な検索基準を適用して、おそらく最も可能性が高いと誰もが言うことに正確に使用したいと考えています。問題は、クエリを実行するテーブルが完全にプリミティブ値で構成されているわけではなく、部分的に他のオブジェクトから構成されているため、それらのオブジェクトの ID に対してクエリを実行する必要があることです。

2年前のこの記事を見つけて、それが不可能であることを示唆しています。オブジェクトのネストを示すために、この種のドット表記が文字列リテラル内でサポートされている場所を知っている Hibernate の他の側面があります。

編集:

以下の最初の回答からの提案を使用して、上記で試したことを達成するための正しく因数分解されたコードを次に示します。さらに別の関連付けられたオブジェクト/テーブルの属性を注文するために、追加の createCriteria 呼び出しを使用していることに注意してください。

0 投票する
1 に答える
1116 参照

hibernate - Criteria Builder を使用して 1 対多で別の方法でクエリを実行する

次の1対多の関係があるとしましょう:

私はこのような関係を設定しました

基本的に、特定のサイトの特定のユーザーのユーザー名を更新し、ユーザー オブジェクトを返したいと考えています。私はサイトと新しいユーザー名を知っているので、基準ビルダーを使用して対応する接続​​を検索しようとする関数があります。

次のような例外が発生します。

これは Criteria Builder で可能ですか? サイトからユーザーへと基準を構築する別の方法でクエリを実行できることに気づきましたが、サイトのすべてのユーザーをループして、更新しようとしていた数に一致するユーザーを見つける必要があります。HQL クエリを使用する必要がありますか?

0 投票する
5 に答える
5859 参照

java - Criteria API が返す結果セットが小さすぎる

これはどのように可能ですか、次の基準に従う必要があります

リストのサイズは 20 になりました。条件に最大結果を追加すると、

.. これでリストのサイズは 18 になりました!

行の量が定義された最大値よりも小さいため、最大結果を定義した後に結果セットのサイズを小さくする方法がわかりません。これは確かにバグのように思えますか、それとも私が気付いていない休止状態のいくつかの奇妙な側面がありますか?


この質問に対する回答を探している場合は、受け入れられた回答とそのコメントを必ず読んでください。

0 投票する
3 に答える
38281 参照

hibernate - Hibernate 基準: 両方のテーブルに制限がある左外部結合

LEFT OUTER JOIN を実行していますが、制限を適用できるのは最初のテーブルだけです。2番目のテーブルにも適用する方法はありますか?

これが私のコードです:

これはうまくいきます(申請者にはapplicantNameプロパティがあります):

これらのどちらも機能しません (製品には productName プロパティがあります)

criteria.add(Restrictions.eq("products.productName", "product1") // 製品: プロパティの名前 criteria.add(Restrictions.eq("Product.productName", "product1") // 製品: DB テーブルの名前

そして、これは、productName プロパティが Applicant に存在しないという例外です (正しく理解している場合)。

エイリアスを使用しようとしましたが、必要な LEFT OUTER JOIN ではなく、INNER JOIN が生成されました。

両方のテーブルに制限を適用するにはどうすればよいですか?

アップデート:

問題はおそらくこれと同じです: https://forum.hibernate.org/viewtopic.php?p=2393694

0 投票する
2 に答える
710 参照

java - コレクションのいくつかのプロパティで注文するHibernate基準を作成するにはどうすればよいですか?

たとえば、コレクションとしての操作の履歴を持つエンティティがあります。最新の操作の日付でエンティティを並べ替えたい(これは履歴の最初の要素です)。

私はこのようなことをしたいです:

これは可能ですか?

0 投票する
5 に答える
8383 参照

hibernate - Grails:基準ビルダーでのネストされた関連付けの問題

基準ビルダーにイライラする問題があります。1人のユーザーが1つのカレンダーを持ち、カレンダーに多くのエントリがあるアプリケーションがあります。簡単そうに見えますが、特定のユーザーのカレンダーエントリを取得しようとすると、ユーザープロパティ(MissingMethodException)にアクセスできません。コードは次のとおりです。

私は次のバリエーションも試しました:

それは例外を発生させませんでしたが、どちらも機能しませんでした。

ドメインクラスの関連部分は次のとおりです。

グーグルをしているときに、2008年の初めに指摘された同様の問題に遭遇しました:http: //jira.codehaus.org/browse/GRAILS-1412

しかし、そのリンクによると、この問題はずっと前に解決されているはずです。

私は何が間違っているのですか?

0 投票する
3 に答える
14272 参照

java - Hibernate 基準 -- エイリアス

Hibernate のエイリアスの概念に少し苦労しています。
私の状況は次のとおりです

注文詳細

ダオ

そのため、製品を含むすべての注文を検索したいと考えています。
ただし、このクエリでは 0 件の注文が返され続け、何が間違っているのかわかりません。
ありがとう!

0 投票する
2 に答える
427 参照

c# - NHibernate Criteria API を使用して、正確なクラスのすべてのエンティティを選択しますが、それから派生したものではありません

私は 2 つのクラスを持っています:CatDomesticCat、それは を拡張しCatます。

Catすべての sを選択したいのですが、 one は選択しませんDomesticCat。NHibernate 基準 API を使用してそれを行う方法は?