問題タブ [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 投票する
3 に答える
3659 参照

spring - JPA 2.1 の Enum を使用した @ConstructorResult

@SqlResultSetMapping の @ConstructorResult を使用しているときに @ColumnResult タイプで Enum を使用する方法がわかりません

上記の構成では、名前「transactionType」は TransactionType Enum です。ここで Enum を使用する正しい方法は何ですか。

上記が正しい方法である場合、この例外が発生します(Enumフィールドを削除すると例外はありません)ので、これを使用する別の方法があるはずだと考えています。

hibernateTemplate では、sqlquery.addscalar を使用していましたが、org.hibernate.type.Type を使用して Enum を使用する方法がありました。

このようなものが @SqlResultSetMapping と @ConstructorResult に使用されるかどうか提案してください

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

java - JPA 2.1 ConstructorResult が ClassCastException を引き起こす

@SQLResultSetMapping オブジェクトで指定したものではなく、結果セットのオブジェクトが「オブジェクト」にキャストされています。

ConstructorResult のハンドルを取得しようとしていて、単純な結合を含むクエリを作成し、結果セットを取得してループさせようとしていますが、それを出力して正しいことを確認しています。しかし、私がループに到達したとき、それは単純なはずのように見えますが、そうではありません。

結果リストを宣言すると、型にキャストされます。クエリ テスト クラスをステップ実行すると、クエリが正常に実行されて結果に読み込まれますが、結果リストの項目は CommentInfoListItemDTO オブジェクトではなく「オブジェクト」と入力されています。そのため、ループに到達すると、クラス キャスト例外が発生します。結果が CommentInfoListItemDTO オブジェクトにキャストされないのはなぜですか? 特にこれが @SQLResultSetMapping で指定されている場合。

コードは以下に掲載されています...列名の一部を短くするために切り捨てました。再度追加するのに役立つ場合は、お知らせください。

@SqlResultSetMapping --

EDITED -- これが既存のエンティティ クラスにどのように配置されたかを示します。

EDITED - マッピングの列リストにデータ型を追加しようとしました。役に立ちませんでした。結果セットの各レコードは、Hibernate 内のどこかでまだ java.lang.Object にキャストされており、DTO にキャストし直すことはできません。結果セットマッピングは Hibernate によってバインドされています:

情報: 結果セット マッピングのバインディング: CommentInfoListItemDTOMapping

ポジョ

最後に、結果セットを CommentInfoListItemDTO オブジェクトではなくオブジェクトとして表示するデバッガーからのスクリーングラブ。ただし、正しい情報はオブジェクトにあります。

最後に、結果セットを CommentInfoListItemDTO オブジェクトではなくオブジェクトとして表示するデバッガーからのスクリーングラブ。

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

hibernate - Hibernate SqlResultSetMapping 同じ結果が一意ではなく繰り返される

ストアド プロシージャの結果にマップされる POJO があります。

ストアドプロシージャは次のようになります

このように名前付きネイティブクエリを呼び出します

TOAD で選択クエリを実行すると、2 つの異なるレコードが表示されます。ただし、resultSet を繰り返し処理すると、1 つのレコードのみが 2 回表示されます。

マッピングが間違っているのか、何かを実装する必要があるのか​​ わかりません。ところで、2 つのプロパティを使用して POJO で hashcode と equals メソッドも定義しています。

私はehcacheでHibernate 4.2.7を使用しています。データベースは DB2 です。フレームワークはSpring/Camelです。

0 投票する
0 に答える
1206 参照

java - ネイティブSQLクエリをJPAに変換する方法

SQL 結果セット マッピングを使用して、ネイティブ クエリからの結果をマップしていますが、多くのコンパイル時間の問題に直面しています。以下で行ったアプローチが正しいかどうか教えてください。私のエンティティ クラス: エンティティ クラス 場所:

私のJPAリポジトリクラス:

私はSpring jpaに基づいてアプリケーションを開発しているので、構成クラスですべてのjpa構成(エンティティマネージャー、トランザクションなど)を定義しました。

上記の問題を解決するのを手伝ってください。

0 投票する
0 に答える
1439 参照

jpa - POJOへのEclipseLink @SQLResultSetMappingがありません

EclipseLink 2.5 (JPA 2.1) では、ネイティブ クエリの結果を POJO にマップしようとしています。これらのリンクによると、これは可能なはずです。

...次の構文を使用します(EclipseLink 2.5 APIドキュメントから直接取得):

ただし、@SqlResultSetMapping の「classes」属性が見つかりません。Eclipselink 2.5.2 および 2.6 で試しました。その機能を得るために使用する必要がある別の (オプションの) EclipseLink jar はありますか?

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

hibernate - JPA 2.1 を使用して、ネイティブ クエリの結果を @Transient フィールドにマップするにはどうすればよいですか?

JPA 2.1、Hibernate 4.1.3.Final、および MySQL 5.5.37 を使用しています。@Transient結果セットをコレクションにマップするにはどうすればよいですか? 私のエンティティでは、私は設定しました

そして、ネイティブ クエリを使用して物事をマッピングしようとしています…</p>

しかし、私は以下の例外を受け取ります...</p>

ネイティブクエリから返されたものを結果セットにマップする方法についてのアイデアはありますか? また、ネイティブ SQL を使用せず、CriteriaBuilder/JPQL で何かを行うことにもオープンです。

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

java - JPA 2.1 エラー: その名前の @NamedStoredProcedureQuery が見つかりませんでした:

postgresSql 関数からデータを取得しようとしました。ここでこの例を使用しました

IN/OUT データを含むマッピング クラスの下:

createNamedStoredProcedureQuery を呼び出すクラスの下

私はこのエラーを受け取りました:

注釈はどこに挿入すればよいですか? なにが問題ですか ?

ありがとうございました