問題タブ [hql]

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 投票する
3 に答える
64199 参照

hibernate - (...)クエリでHQLを記述する適切な方法

次のHQLクエリを記述したいとします。

これをパラメーター化されたクエリとして記述する適切な方法は何ですか。

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

hibernate - hql を介して 1 対 1 のコンポジションを遅延ロードする方法

エンティティ B との双方向の 1 または 0 対 1 マッピングを持つエンティティ A があるとします。

マッピングは次のとおりです。

EntityA に対して hql クエリ (または名前付き hql クエリ) を実行すると、hibernate は別の select ステートメントで EntityA#propertyB を積極的に読み込みます。

それに関する私の問題は、私の hql が 1000 個の EntityA を返した場合 (すべてが独自の EntityB を持っている)、休止状態が n+1 クエリを実行することです (最初のクエリは 1000 の結果を返す EntityA 用であり、n 個のクエリは EntityA からのものです。 propertyB は遅延読み込みを選択します)。

ただし、これらの EntityA#propertyB は必要ありません。そのため、代わりにそれらを遅延ロードしたいのです (休止状態に別の SQL クエリを使用させることなく)。

それは可能ですか?もしそうなら、どうすればいいですか?

ありがとう、フランツ

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

hibernate - HQL クエリによる並べ替えの問題

Hibernate の HQL で記述された次のクエリがあります。

================================================== ======================

================================================== =====================

上記のクエリを実行すると、次のエラーが発生します。

「注文による検査の説明」でこのエラーが発生しています。それを削除すると、正常に動作します。

誰でもこの問題を解決するのを手伝ってもらえますか?

ありがとう。

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

hibernate - HQL、Hibernateでハードコードされたフィールド名を避けるには?

次の HQL があるとします。

MyEntityのメンバー変数の名前をリファクタリングして別の名前に変更したい場合はaField、Strings のコード全体のすべての出現箇所も変更する必要があります。1 つの hql 文字列を変更するのを忘れると、コードが壊れます。

どうすればこれを回避できますか?

0 投票する
4 に答える
42090 参照

hibernate - HQL で関連付けなしで参加する

次のような2つのテーブル(A、B)があるとしましょう:

私も彼らの実体を持っています。結果セットが次のようになるように HQL を書きたい (Ac = Bc):

句は休止状態でサポートされていないためon、私は動けなくなり、クエリの書き方がわかりません。

0 投票する
4 に答える
632 参照

hibernate - 休止状態のクエリの問題、とても近くて困惑しています

スキーマ: (疑似コード)

私は BaseEntity と呼ばれる Bean を持っています...

プロパティは別の豆です...

Value は、実際には、Inheritence.SingleTable と、NumericalValue や DateValue などのサブクラスを含む抽象クラスであり、(抽象 Value クラスでは) @ManyToOne BaseType タイプです。

目標:

特定の名前のカテゴリを持つプロパティを持つ BaseEntity オブジェクトを選択し、それらのいくつかを選択して、指定されたプロパティのいずれかを持つオブジェクトを取得し、存在しないフィールドで null を取得するクエリを作成しようとしています。

試み:

このクエリは実行されます。現在、データベースには一致する BaseEntity が 1 つあり、foo の正しい結果が何度も得られますが、これには含まれていますが、同じエンティティが何度も繰り返され、bar フィールドに多くの値が含まれています。

また、実行に 5 分ほどかかり、データベースを使用している他のすべての人を遅らせます。

アイデア:

もちろん、ある種の個別の使用を検討しましたが、実行にかかる極端な時間には対応していません。何が起こっているのかよくわかりません。

同僚の皆さんが、より良いクエリ アプローチを提案してくれることを期待していました。どうもありがとう!


私はコメントしたでしょうが、このコードはコメント ボックスには長すぎます...クエリを実行しました。これはハングするほど長くはありませんが、それ以上結合すると完了する代わりにハングします...このクエリはかかります実行まで MINUTES。

コードからクエリを実行し、休止状態のプロパティで show_sql をオンにしました。

select baseentity0_.entityId as col_0_0_, property2_.value_valueId as col_1_0_, property4_.value_valueId as col_2_0_, property6_.value_valueId as col_3_0_, property8_.value_valueId as col_4_0_, property10_.value_valueId as col_5_0_, value11_.valueId as valueId9_0_, value12_.valueId as valueId9_1_, value13_.valueId as valueId9_2_, value14_.valueId as valueId9_3_, value15_.valueId as valueId9_4_, value11_.type_typeId as type6_9_0_, value11_.numericalValue as numerica3_9_0_, value11_.textValue as textValue9_0_, value11_.dateValue as dateValue9_0_, value11_.value_entityId as value7_9_0_, value11_.DTYPE as DTYPE9_0_, value12_.type_typeId as type6_9_1_, value12_.numericalValue as numerica3_9_1_, value12_.textValue as textValue9_1_, value12_.dateValue as dateValue9_1_, value12_.value_entityId as value7_9_1_, value12_.DTYPE as DTYPE9_1_, value13_.type_typeId as type6_9_2_, value13_.numericalValue as numerica3_9_2_, value13_.textValue as textValue9_2_, value13_.dateValue as dateValue9_2_, value13_.value_entityId as value7_9_2_, value13_.DTYPE as DTYPE9_2_, value14_.type_typeId as type6_9_3_, value14_.numericalValue as numerica3_9_3_, value14_.textValue as textValue9_3_, value14_.dateValue as dateValue9_3_, value14_.value_entityId as value7_9_3_, value14_.DTYPE as DTYPE9_3_, value15_.type_typeId as type6_9_4_, value15_.numericalValue as numerica3_9_4_, value15_.textValue as textValue9_4_, value15_.dateValue as dateValue9_4_, value15_.value_entityId as value7_9_4_, value15_.DTYPE as DTYPE9_4_ from BaseEntity baseentity0_ inner join BaseEntity_Property properties1_ on baseentity0_.entityId=properties1_.BaseEntity_entityId inner join Property property2_ on properties1_.properties_propertyId=property2_.propertyId inner join Value value11_ on property2_.value_valueId=value11_.valueId inner join BaseEntity_Property properties3_ on baseentity0_.entityId=properties3_.BaseEntity_entityId inner join Property property4_ on properties3_.properties_propertyId=property4_.propertyId inner join Value value12_ on property4_.value_valueId=value12_.valueId inner join BaseEntity_Property properties5_ on baseentity0_.entityId=properties5_.BaseEntity_entityId inner join Property property6_ on properties5_.properties_propertyId=property6_.propertyId inner join Value value13_ on property6_.value_valueId=value13_.valueId inner join BaseEntity_Property properties7_ on baseentity0_.entityId=properties7_.BaseEntity_entityId inner join Property property8_ on properties7_.properties_propertyId=property8_.propertyId inner join Value value14_ on property8_.value_valueId=value14_.valueId inner join BaseEntity_Property properties9_ on baseentity0_.entityId=properties9_.BaseEntity_entityId inner join Property property10_ on properties9_.properties_propertyId=property10_.propertyId inner join Value value15_ on property10_.value_valueId=value15_.valueId, Category category16_, Category category17_, Category category18_, Category category19_, Category category20_ where property2_.category_categoryId=category16_.categoryId and property4_.category_categoryId=category17_.categoryId and property6_.category_categoryId=category18_.categoryId and property8_.category_categoryId=category19_.categoryId and property10_.category_categoryId=category20_.categoryId and category16_.name='Sample Name / Strain' and category17_.name='Item #' and category18_.name='THC_Result' and category19_.name='CBD_Result' and category20_.name='CBN_Result'


さて、フォローアップして、2 つの結合ステートメントで見事に機能したものが、5 つの結合ステートメントではとてつもなく遅くなることを言いたかったのです。

select entity.id as entityId, strain.value as name, item.value as itemNum, thc.value as THC, cbd.value as CBD, cbn.value as CBN

from BaseEntity as entity join entity.properties as strain join entity.properties as item join entity.properties as thc join entity.properties as cbd join entity.properties as cbn where strain.category.name = 'Sample Name / Strain' and item.category.name = 'Item #' and thc.category.name = 'THC_Result' and cbd.category.name = 'CBD_Result' and cbn.category.name = 'CBN_Result'

私の愚かなスキーマでより速くなるより良い方法についての提案はありますか?

0 投票する
4 に答える
70449 参照

hibernate - Using HQL to query on a date while ignoring the time on Oracle

I have a table (in Oracle 9 and up) where I need to find all entries for a given day using Hibernate. The entries have timestamps (with data type 'date'). Some of the entries have a time, others only have a date. This can not be changed, as this is the output of other applications which I can not change. In SQL I would write something along the lines of

#xA;

to get all entries for the date I am looking for. I was wondering how I can get Hibernate to do this using HQL. I know I can use SQL-queries in Hibernate, but this seems to be less clean. Is there a way to do this? If possible, this way should also work on non-oracle databases where timestamp would be the data type.

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

java - この HQL の何が問題になっていますか? 「ノードのデータ型がありません」

私には問題ないように見えますが、結果は

なんで?どうしたの?

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

mysql - JSF、Hibernate

Itemsというテーブルがあります。MyEclipseで「HibernateReverseEnginering」を実行してプログラムを実行しようとすると、次のエラーが発生しました。

show_sql = truehibernate.cfg.xmlに書き込みました。今私はSQLを取得しますが、問題がどこにあるのかわかりませんか?誰かが私を助けることができますか?

そしてこれはコンソールからの私のSQLです:

Hibernate:

キャラクター「ı」に問題があると思います。

ありがとう。

0 投票する
8 に答える
73764 参照

hibernate - 休止状態で日付操作を実行する方法

hibernate HQL を使用してデータ時間操作を実行したいと考えています。

特定の日付から 1 年または 1 か月を減算するだけでなく、2 つの日付を加算および減算したい。

休止状態でHQLを使用してこれをどのように可能にしますか?