1

いくつかの異なるクエリを実行する必要があり、同じ POJO を使用して結果を取得したいと考えています。これらのクエリで得られるのは同じ列の組み合わせですが、同じものを再利用できsqlResultSetMappingますか?

JPA-2.1とJava 8を使用しています

私のクエリは次のようなものです:

select tableA.a, tableB.b, tableA.c
from tableA
inner join tableB

select tableA.a, tableB.b
from tableA
inner join tableB

select tableB.b, tableA.c
from tableA
inner join tableB

私のPOJOは次のようなものです:

public class Result {
 String a;
 String b;
 String c;
}

最後に、私の SqlResultSetMapping は次のとおりです。

@SqlResultSetMapping(
        name="GeneralResult",
        classes = {
                @ConstructorResult(
                        targetClass = Result.class,
                        columns = {
                                @ColumnResult(name="a", type=String.class),                             @ColumnResult(name="b", type=String.class),     @ColumnResult(name="c", type=String.class)
                        }
                )
        }
)

フィールド a、b を使用して最初のクエリを実行すると、呼び出しは正常に機能します。問題は、他の 2 つのクエリのいずれかを実行するときです。

SqlResultSetMappingそれらのクエリに同じものを使用できますか?

いくつかの ConstructorResult を試しましたが、問題はすべてのフィールドが String (DB の VARCHAR) であることです。

前もって感謝します。

4

0 に答える 0