Hibernate JPA Transient Table

时间:2018-01-12 15:55:03

标签: java hibernate jpa spring-data-jpa

是否可以使用Hibernate JPA从多个实体返回结果集(RS),但返回的RS本身不是持久性实体?

例如(伪代码):

持久性实体 一个 包含字段ABOneflag

持久性实体 两个 包含字段CDTwoflag

持久性实体 三个 包含字段EFThreeflag

我正在寻找像

这样的东西
@Query(value ="Select A, C, E from One o, Two tw, Three th 
where o.oneFlag = tw.TwoFlag and
o.oneFlag = th.ThreeFlag", ***nativeQuery*** = true)

List<MyRsClass> findByFlag(@Param(aFlag) String aFlag);

我的非Persistence类是:

Class MyRsClass {
  String A;
  String C;
  String E
  .....
}

如果我在数据库中创建MyRsClass广告表,我当然可以做到这一点,但我试图避免这种情况。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

是结果类是JPA标准,在您的情况下,您将更改查询:

@Query(value ="Select new com.mypackage.MyRsClass(A, C, E) from One o, Two tw, Three th 
where o.oneFlag = tw.TwoFlag and
o.oneFlag = th.ThreeFlag",

请记住:

  • 使用params的适当顺序指定构造函数
  • 在查询中使用完全限定的类名称