将不同的本机查询结果映射到具有相同SqlResultSetMapping的相同POJO?

时间:2019-07-19 08:51:53

标签: java jpa-2.1 sqlresultsetmapping

我需要执行几个不同的查询,并且我想使用相同的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执行第一个查询时,该调用工作正常。问题是当我执行其他两个查询之一时。

我可以对这些查询使用相同的SqlResultSetMapping吗?

我尝试了几种ConstructorResult,但问题是所有字段都是String(DB中的VARCHAR)。

谢谢。

0 个答案:

没有答案