Mysql JPA SQL从实体管理器选择和求和
以下SQL脚本在mysql中工作:Mysql JPA SQL从实体管理器选择和求和,mysql,sql,jpa,entity,Mysql,Sql,Jpa,Entity,以下SQL脚本在mysql中工作: select LOGGING_ID, SUM(NORMAL_HOURS +OVERTIME_HOURS +DOUBLE_TIME_HOURS) AS TOTAL_HOURS FROM LOGGING_DETAIL GROUP BY 1 我将如何与我的实体经理合作 @PersistenceContext private EntityManager database; List<loggingDetail>
select
LOGGING_ID,
SUM(NORMAL_HOURS +OVERTIME_HOURS +DOUBLE_TIME_HOURS) AS TOTAL_HOURS
FROM
LOGGING_DETAIL
GROUP BY 1
我将如何与我的实体经理合作
@PersistenceContext
private EntityManager database;
List<loggingDetail> loggingDetail = new ArrayList<loggingDetail>();
timeLoggingDetail = database.createQuery("").getResultList();
@PersistenceContext
私有实体管理器数据库;
List loggingDetail=新建ArrayList();
timeLoggingDetail=database.createQuery(“”.getResultList();
最后,我需要日志id和该id的总小时数。
谢谢实体管理器可以调用您在jpa实体对象上设置的命名查询。在这种情况下,我假设您有一个实体对象。我想如果你没有这个对象,你可以在查询中这样做,就像在你的问题中那样。我喜欢把它放在实体对象中,这样其他调用可以重用它 实体对象-
@Entity
@NamedQuery( name = "loggingDetail.getLoggingId", query = "select
LOGGING_ID,SUM(NORMAL_HOURS +OVERTIME_HOURS +DOUBLE_TIME_HOURS) AS TOTAL_HOURS
FROM LOGGING_DETAIL GROUP BY 1" )
public class LoggingDetail
{ ...}
实体管理器调用将不会返回完全填充的loggingDetail对象,因为查询未返回完整对象,因此您必须通过对象数组进行循环-
@PersistenceContext
private EntityManager database;
Query query = database.createNamedQuery( "loggingDetail.getLoggingId" );
List<Object[]> obj = query.getResultList();
for( Object[] objects : obj )
{
String logId = (String) objects[0] ;
String logTime = (String) objects[1] ;
}
@PersistenceContext
私有实体管理器数据库;
Query Query=database.createNamedQuery(“loggingdail.getLoggingId”);
List obj=query.getResultList();
对于(对象[]对象:obj)
{
字符串logId=(字符串)对象[0];
字符串logTime=(字符串)对象[1];
}