問題タブ [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.
java - Hibernate、重複する値を取得する
非常に単純なクエリを書いていますが、何らかの理由で重複した値を取得しています。
pi.getId()
重複する値を返します。すなわち:*9,9,10,10,11,11 etc*
ただし、このクエリをmysqlで直接実行する
重複する値を返しません。
誰かが何が悪いのかを見つけることができますか?
hibernate - 特定の行を含む Hibernate と演算
私は Hibernate を使用しており、結果に対して基本的な算術関数を実行する必要があります。これが私の状況です:
を保存odometer
していfuel
て、 を計算したいと思いますfuelEconomy
。odometer
しかし、それを行うには、前の結果から得られる前の測定値を知る必要があります。これがイラストです。
テーブル:
ポジョ:
Criteria を使用してこれを達成できますか? それとも HQL クエリに頼る必要がありますか? それともまとめて別レイヤーに任せたほうがいいのでしょうか?
java - プロジェクションを使用した Hibernate 基準が @OneToMany マッピングのクエリを実行しない
initialFieldsというフィールドを持つドメイン オブジェクト Expense があります。
次のように注釈が付けられています。
現在、パフォーマンス上の理由から特定のフィールドのみを取得するためにプロジェクションを使用しようとしていますが、その場合、initialFields フィールドは常に null です。これは唯一の OneToMany フィールドであり、このように動作しているプロジェクションで取得しようとしている唯一のフィールドです。通常の HQL クエリを使用すると、initialFields は適切に入力されますが、もちろんフィールドを制限することはできません。
部分投影コード:
デバッグをオンにして show sql をオンにすると、initialFields をプルするクエリが作成/実行されていないように見えます。誰もこのようなものを見たことがありますか?
プルしたい各フィールドを指定してから手動でオブジェクトを構築することにより、HQL プロジェクションを使用してみました。この場合、Hibernate によって構築された SQL は initialFields フィールドに対して正しくありません。 expense1_.name as col_1_0_, . as col_2_0_, expense1_.account_id as col_3_0_
. initialFields. as col_2_0_ is
がプルされる場所。私の推測では、そうあるべきですexpense1_.id as col_2_0_
。
編集: 各プロパティを検査するために Result Transformer を削除したところ、initialFields プロパティは実際には null です。
hibernate - Hibernate 基準クエリ
Hibernate 基準 API を使用してサブクエリを実行しようとしていますが、その方法を完全に理解することができませんでした。SHOPS と EMPLOYEES の 2 つのテーブルがあり、SHOPS にはすべての店舗情報があり、EMPLOYEES はすべての店舗のすべての従業員の大きなテーブルであると仮定します (外部キーは設定されていません)。SHOPS テーブルから店舗 ID と住所を取得し、結合によって店舗の従業員数を取得し、EMPLOYEES テーブルをカウントするクエリを作成しようとしています。このようなもの:
したがって、従業員用に shopId、shopAddres、numEmployees などの Java クラス Shop があります。
私のサブクエリ:
そして、次の行の主な基準クエリ:
私の質問は:
- Detached クエリをサブクエリとして関連付けて、カウント結果を Shop クラスのクラス変数 numEmployees に収集するにはどうすればよいですか?
ありがとう -J
hibernate - 基準で左結合を使用すると Hibernate Child Collection が制限される
休止状態基準を使用する場合、結合タイプを変更するだけで、ルート ドメイン クラスの子コレクションの結果に影響します。
たとえば、次のデータを使用して、クラス Parent をクラス Child と 1 対多の関係にします。
次の hibernate 基準を使用すると、1 つの親行が返され、子コレクションにアクセスすると、2 つの行が返されます。
ただし、左結合で上記のコードを変更すると、1 つの親行が返されますが、子コレクションにアクセスすると、一致する子行のみが返されます。
この副作用はなぜ起こるのでしょうか?意図した結果に応じて、この副作用を使用または回避することについてのいくつかの議論を見つけましたが、そもそもなぜそれが存在するのか、それが意図されていたのかどうかについては何もありません. 最も直接的な質問は、古い古い欠陥 ( http://opensource.atlassian.com/projects/hibernate/browse/HHH-3872 ) です。
- EDIT 3/24: 固定データ *
java - コレクション値の Hibernate 基準
Hibernate を使用して複雑なクエリをまとめようとしています。私は基準に傾いてきましたが、それは不可能だと思い始めているので、何か提案があれば助かります.
次のようなエンティティ構造があります。
これらのエンティティは、予想どおりに関連しています。
ここで、属性/値のペア (文字列) のセットを取得し、それらすべてを含むすべてのインスタンスを検索できるようにしたいと考えています。Value では、attribute と localAttributeName の 1 つだけが非 null であるため、属性名は localAttributeName または attribute.name のいずれかと一致する可能性があります。さらに複雑なことに、Value の一意のインデックスは on (instance, attribute, value) または (instance, localAttributeName, value) です。つまり、インスタンス内では、任意の属性が複数の値を持つ場合があります。
これは私がこれまでに持っているものです:
私が行った調査に基づいて、その「何かをする」セクションで試したことは次のとおりです。
しかし、これは以下の例外をスローします。これは、基準ではこれを行うことができないと言っていると思われますが、それ以外の方法で学びたいと思います:
これを行うための最良の方法は何ですか?
mysql - 要素のセットに対する制限を含む/含まない休止状態を置く基準
こんにちは、古い SQL ベースのクエリ フレームワークを Hibernate Criteria ベースに移行しようとしています。現在、Hibernate バージョン 3.2 を使用しています。およびmysql v 5.0.54
私の質問は、含まれている要素のセットに値を持たないすべての Bean を返す基準を書きたいということです。
Bean の休止状態構成ファイルの概要は次のとおりです。
クラスファイルは次のようなものです。
agentOptions にオプション「DO_NOT_SYNDICATE_ADS_TO_THIRD_PARTIES」がないすべてのエージェントを取得したいと考えています。
以前にこれに使用していたSQLは次のようなものでした:
私はこれを試しました:
悪いSQLを吐き出す
エイリアスを使用してこれも試しました:
これは例外をスローします:
org.hibernate.MappingException: コレクションは関連付けではありませんでした: Agent.agentOptions
最後に、ブルート SQL 基準を試すことにしました。
これは機能しましたが、少し醜いようです。
SQLに頼らずにstd Criteria APIを使用する方法があるかどうかは誰にもわかりません。
どんな助けや提案も大歓迎です。Hibernate の最新バージョンへのアップグレードが必要な場合でも。
乾杯サイモン
hibernate - Criteria Query で MAP のキーを使用するには?
私はこのようなBeanを持っています
マップとTestA
一緒にデータを取得したい.testBMap
key ='test1'
Hibernate を使用してこれを行うにはどうすればよいですか。
hibernate - Hibernate 基準とカウント列
1 対多の関係である別のテーブルのカウントを持つ列を持つエンティティを返そうとしています。HQLではなく、休止状態の基準を使用してこれを行いたいです。
grails - Grails: クロス結合からのデータをドメインに取り込みます: hql、条件、SQL クエリ?
私はその質問に少し行き詰まっています。ドメインクラスがあるとしましょう:
そしてこのもう一つ
ActivityMap ドメイン クラスに、ドメイン クラス Activity をそれ自体とクロス結合した結果、つまり同等の SQL クエリの結果を入力したい
結果のデータセットが非常に大きくなる可能性があるため、基準、HQL、または埋め込み SQL クエリを使用して、それを達成する最も効率的な方法はどれかわかりません (300-50+ アクティビティの発生、250k の結果行が予想されます)?
提案/ヒント、例はありますか?
前もってありがとう、パトリック