問題タブ [native-sql]
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 - hibernate throwing: 予期しないトークン "" が "" の後に見つかりました
休止状態で実行したいネイティブ SQL クエリがありますが、エラーがスローされます。
更新を実行するために実行するコードは次のとおりです。
デバッグ中に SQLQuery オブジェクトの内部を見ることができ、SQL は次のとおりです: (これは db2 で正常に動作します)
上記のコードで生成されたSQLを手動で実行すると、正常に実行されます。ただし、休止状態で実行しようとすると、「syntaxErrorException」がスローされます。何か案は?ありがとう
java - ネイティブ SQL を使用した QueryDSL の結合とサブクエリ
Spring Data と QueryDSL 3.2.4 を使用しており、QueryDSL のネイティブ SQL API を使用して次の SQL クエリを実装したいと考えています。
結合は FK 列ではなく、サブクエリ ORDER_GROUP の任意の属性です。このサブクエリは、後で並べ替えに使用するために、OrderHeader の最小/最大値を集計します。
クエリの種類は次のとおりです。
と
今質問:
ALL_ORDERS サブクエリの最後で結合を行うにはどうすればよいですか? 私はすでに次のことを試しました:
/li>
しかし、一致するメソッド leftJoin が利用できないため、これもコンパイルされません。結合は FK 列ではなく、任意の属性です。サブクエリ ORDER_GROUP
- nof_orders_per_group (SELECT リストの 7 番目の項目) を計算する相関サブクエリはどのように実装されていますか? (私はこれを行う方法がわかりません:-))
上部に表示されている SQL は、効率を高めるために多少最適化されています。そのため、サブクエリがあちこちにあるため、ネイティブ SQL を使用することにしました。
どんな助けでも大歓迎です。
enums - QueryDSL、JPASQLQuery から DTO に列挙型を射影するときの引数の型が正しくない
任意の列とサブクエリを結合する複雑なクエリには、JPASQLQueries を使用する必要があります。そのようなクエリの 1 つは、DB から文字列を返し、これを列挙型に射影して DTO にする必要があります。このマッピングは、その特定の値に対して DTO でセッターを呼び出そうとすると、「不正な引数の型」で失敗します。
DTO と同じ構造を持つエンティティへのマッピングが機能します。
これは私が使用するクエリです:
DTO (stateCode dito) で orderTypeCode を設定しようとすると、クエリが失敗します。
これはエンティティです:
そして列挙型:
そしてDTO:
最後にスタック トレースがスローされます。
質問は次のとおりです。
- プロジェクションで一部の列、つまり列挙型に型変換式を提供するにはどうすればよいでしょうか?
- 生成されたエンティティ メタデータ (apt-maven-plugin から) を JPASQL に使用することは可能ですか?
どんな助けでも大歓迎です。
また、他のさまざまなバリアントも調べましたが、それほど良い結果は得られませんでした。
- プロジェクションに (querydsl-maven-plugin からの) ネイティブ SQL メタデータを使用してもあまり変化はありませんでしたが、追加の型マッピングの問題が明らかになりました。
- ネイティブ SQL メタデータからの選択も同じ動作でした。
- エンティティへの射影は機能しますが、DTO に (合成された値も) 直接入力する必要があるため、これは意図したものではありません。エンティティを使用する場合は、後でエンティティを DTO にコピーする必要があります。
編集:使用されるバージョン:
QueryDSL: 3.2.4
Spring: 3.2.2.RELEASE
Hibernate:4.2.6.Final
使用する最後のクエリは次のようになります (SQL のみ)。
querydsl - QueryDSL: 定数式ではなく列を返すように CaseBuilder を設定する方法
次のように、JPASQLQuery API を介して SQL ケース式をセットアップしたいと考えています
。 Oracle SQL は次の とおりです。
正しい結果を提供します。CaseBuilder() をセットアップしようとすると、単純な が返さExpression
れ、JPASQLQuery では使用できなくなります (少なくとも、 でエイリアスを設定することはできません.as("someString")
)。
メタデータ クラスは次のようになります (短い形式)。
グループクエリは次のようになります。
CaseBuilder() ステートメント:
さまざまな CASE 代替で異なる列を返すための手段や、CaseBuilder() から返される式にエイリアスを設定する可能性が必要です。どんな助けでも大歓迎です。
querydsl - QueryDSL: querydsl-maven-plugin を介して型マッピングを適用する方法
querydsl-maven-plugin から生成された生成されたメタデータ クラスで、DB 列の型から JAVA 型へのマッピングに関する問題に遭遇しました。
次の定義を持つOracle DB列があります
1 から 9 までの整数を取ります。
これで、メタデータ ジェネレーターは列の型の指定をブール値にマップします (これはとにかく DB 列の間違った解釈です)。
一部のテーブル/列のペアまたは一部の DB データ型に対して異なる型マッピングを提供できるように Maven プラグインを構成する可能性はありますか?
別の JAVA プログラムを使用してメタデータの生成をセットアップすることもできますが、ビルドをそのまま維持したいので、これはオプションではありません。
QueryDSL のバージョンは 3.2.4 です。
どんな助けでも感謝します。
編集: 別の方法として、選択リストで型キャストが行われる場合があります。