我正在使用具有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
}
因此您定义了ScannerReport结果集映射,并且尚未定义ScannerSummaryReport结果集映射。所以也许这样做?没有看到问题 – 2014-10-31 07:21:12
我需要定义两者,以便我可以用两个不同的地方填充数据(但是@SqlResultSetMapping不允许我定义两个映射)。 – ATHER 2014-10-31 14:27:39