2014-10-30 66 views
0

我正在使用具有derby数据库的JPA。我想从同一个表中检索两个不同的结果集到两个完全不同的屏幕上。具有多个结果集的JPA实体具有不同的列

屏幕一使用“ScannerReport”bean显示值。

屏幕2将显示来自ScannerSummaryReport bean的值。

这两个bean都需要具有来自同一实体“扫描器”的数据,如下面的代码所述。

如何定义该结果集映射到实体针对两个不同的结果集,在具有不同的列它

A ---> Query query = em.createNativeQuery(<query for scanner report goes here >,"ScannerReport"); 
      query.getResultList(); 

现在将执行并实例ScannerReport类的一个对象,用数据填充它。

B ---> Query query = em.createNativeQuery(<query for scanner summary report goes here>,"ScannerSummaryReport"); 
      query.getResultList(); 

我想以某种方式让JPA知道,当我执行B,现在它需要实例化一个不同的类,可以说ScannerSummaryReport填满它从不同的查询数据的对象(写入calcuate平均数和总数)并返回result.Again请勿两个查询将是相同的实体扫描仪..

@SqlResultSetMapping(
     name="ScannerReport", 
     classes={ 
       @ConstructorResult(
        targetClass=com.beans.ScannerReport.class, 
        columns={ 
         @ColumnResult(name="scanYear", type=Integer.class),      
         @ColumnResult(name="julianDay", type=Integer.class),       
         @ColumnResult(name="scannerId", type=String.class),         
         @ColumnResult(name="startTime", type=Long.class),         
         @ColumnResult(name="endTime", type=Long.class),         
         @ColumnResult(name="scanTime", type=Long.class),          
        } 
       )   
      } 
     ) 
@Entity 
public class Scanner { 

// Class implementation goes here 

} 
+0

因此您定义了ScannerReport结果集映射,并且尚未定义ScannerSummaryReport结果集映射。所以也许这样做?没有看到问题 – 2014-10-31 07:21:12

+0

我需要定义两者,以便我可以用两个不同的地方填充数据(但是@SqlResultSetMapping不允许我定义两个映射)。 – ATHER 2014-10-31 14:27:39

回答

相关问题