問題タブ [sqlresultsetmapping]

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

java - JPA 2.1 を使用してストアド プロシージャを呼び出し、Sql Result SetMapping を Pojo に実行する

JPA を使用して非エンティティ オブジェクトを返すストアド プロシージャを呼び出そうとしています。これが私がすることです。

次の例外が発生しています

何が間違っているのかわかりません。

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

java - SQL postgres - フィールドが多すぎるため、結合後に各列の名前を変更する方法

2 つのテーブルを結合し、Java 内のすべての列を読み取りたいです。Java では、結果セットにすべてのフィールドが含まれますが、両方のテーブルの名前が同じです。それらは約65列であり、選択後に各列を指定したくありません。

SQL クエリ:

Javaで私が欲しい:

私の考えは、「a_name」や「b_name」などのテーブルの変数を使用して各列の名前を変更し、Java でフィールドを読み取ることでした。

選択後に各列を指定せずにテーブルの各フィールドの名前を変更できますか? ('select a.name as a_name, b.name as b_name,...' のように)

または、Javaですべての列を取得するためのより良い解決策はありますか?

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

hibernate - @SqlResultSetMapping @ConstructorResult @ColumnResult が java.time.LocalDate に対して機能しない

私は単純なエンティティを持っています

ご覧のとおり、ネイティブの名前付きクエリの結果として POJO を使用し、Spring データ JPA リポジトリで使用したいと考えています。リポジトリ メソッドを呼び出すと、次の例外が発生します。

私は一日中、構成をいじるのに何の役にも立ちません。私が間違っていることはありますか?

ところで、

このhttp://www.thoughts-on-java.org/result-set-mapping-constructor-result-mappings/のような記事に基づいて簡単にする必要があります。

Spring Data JPA 1.9.5.RELEASE、Hibernate 5.1.0.Final、Hibernate-Jpa-api 2.1 を使用しています。

Jsr310JpaConverters が @EntityScan に追加されました。

デバッグ後、私の場合、Hibernate はjava.time.LocalDate を参照してorg.hibernate.type.SerializableTypeを使用し、結果の値を LocalDate にデシリアライズできませんでしたが、他のケースでは Hibernate はorg.hibernate.type.DateTypeを使用することに気付きました。 java.time.LocalDate を参照して、これらのケースで機能します (例: 名前付きネイティブ クエリではない)。

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

mysql - 複数のエンティティに対する @SQLResultSetMapping+Joins の異なる結果 | JPA

JPA を使用して NativeQuery を実行していますが、SQL ツールでクエリを実行する場合とは異なる結果が得られます。おそらく私はs.thを誤解しています。@SQLResultSetMapping の概念内。

- - 概要 - -

結果を 2 つのエンティティにマッピングしているので、エンティティ ペアのリストを受け取ることを期待しています。これは機能します。

下の図を見ると、クエリの結果が SQL ツールに表示されます。

  • .. RED BOX は 1 つのエンティティにマップされます
  • .. 緑のボックスは 2 番目のエンティティにマップされます

JPA は、ネイティブ行の 1 つを 2 つのエンティティのペアとして提供する必要があります。

問題

ここで問題が発生します。はい、両方のエンティティのペアのリストを受け取りますが、図とは異なり、列 "pp.id" はそれぞれのテーブルのすべての行を反復しません (図では "5,6,7,..", JPA「5,5,5,5,..」から)。

列 pp.id は結合された列です。結合 + SQLResultSetMappings に関しては、JPA 内で何かを誤解していると思います。違いは、クエリがSQLで実行される場合とは異なり、JPAが常にテーブル「propertyprofile」(詳細は以下)から同じ行に参加していることです。

誰かが私を憐れんで助けてくれることを願っています。:)

- - 詳細 - -

クエリ

私は基本的に、すべての「製品」が定義済みの「プロパティ」(テーブルプロパティプロファイル)の「値」(テーブルプロパティ値)を定義しているかどうかを調べようとしています。

おそらく最も関連性の高い部分は、「propertyprofile」が結合され、「propertyvalue」が左結合されている下部にあります。

テーブル

関連するテーブルは多数ありますが、クエリを理解する上で最も重要なものは次のとおりです。

  • 製品
  • propertyprofile - すべての製品が持つ機能 (高さ、価格など)
  • propertyvalue - 特定の機能のデータ。プロパティプロファイルに関連する (例: 5cm; $120)

SQLResultSetMapping

マッピングは、ProductDataFillSummary_ShoppingGuideInformation、ProductDataFillSummary_ProductInformation の 2 つのエンティティに対して行われます。

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

java - 非エンティティ クラスで 2 つのエンティティを結合する

クラスの属性として 2 つのエンティティを持つ非エンティティ クラスで 2 つのエンティティを結合したいと考えています。

これを例にとります:

SqlResultSetMapping を使用して解決策を見つけましたが、20 列以上あるため、A と B の各列を手動で指定したくありません。

私が見つけたもう 1 つの解決策は、オブジェクト配列結果 [] を返す JPQL クエリを使用することでした。ここで、結果 [0] は A で、結果 [1] は B です。

私のアイデアは両方を組み合わせたもので、次のように考えています。

A と B の両方に複数の列がある場合、問題を解決する最善の方法はどれですか?