2014-10-30 63 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

回答

相關問題