2

名前付きネイティブ クエリがあり、それを名前付きネイティブ クエリの戻り結果にマップしようとしています。テーブルに存在しないエンティティに追加したいフィールドがありますが、クエリの戻り結果には存在します。これはストアドプロシージャでも同じだと思います...

JPAでストアドプロシージャの戻り結果をどのようにマッピングしますか?...

ストアド プロシージャを呼び出すにはどうすればよいでしょうか。

これが私がやりたいことのクエリの例です...

select d.list_id as LIST_ID, 0 as Parent_ID, d.description  from EPCD13.distribution_list d

結果はこのエンティティにマップされます...

public class DistributionList implements Serializable {
    @Id
    @Column(name="LIST_ID")
    private long listId;

    private String description;

    private String owner;

    private String flag;

    @Column(name="PARENT_ID", nullable = true)
    private long parentID;
}

親 ID がデータベースのどのテーブルにもありません。この呼び出しとは関係なく、このparent_idを必要としない他の呼び出しにも、このエンティティを再度使用する必要がありますか? JPA標準に役立つものはありますか?

4

1 に答える 1

2

データベースからの結果がそれ以上の操作に必要ない場合は、プレビューのためだけに、データベース ビューまたは結果クラス コンストラクター式の使用を検討できます。


データベースから取得したエンティティをさらに操作する必要がある場合は、複数選択式一時フィールドを利用できます。

  1. @Column アノテーションを、parentID の @Transient アノテーションに置き換えます。
  2. データベースから複数の列を取得した後、結果を繰り返し処理し、parentID を手動で設定します。
于 2012-07-13T12:12:54.423 に答える