Java Resultset映射返回null,SQL语句不';T
我有这样一个SQL语句:Java Resultset映射返回null,SQL语句不';T,java,resultset,sqlresultsetmapping,Java,Resultset,Sqlresultsetmapping,我有这样一个SQL语句: SELECT generatedresult,sum(size) as count FROM table1_detail AS w WHERE date > '2011.06.01' AND w.l_date < '2011.06.02' GROUP BY category ORDER BY count desc ; @Entity @Stateless @Cache(type = CacheType.NONE, alwaysRefresh=tru
SELECT generatedresult,sum(size) as count FROM table1_detail AS w WHERE date > '2011.06.01' AND w.l_date < '2011.06.02' GROUP BY category ORDER BY count desc ;
@Entity
@Stateless
@Cache(type = CacheType.NONE, alwaysRefresh=true, shared=false, expiry=1, size=0)
@Cacheable(false)
@SqlResultSetMappings({
@SqlResultSetMapping(name = "ResultMapping",
entities = {
@EntityResult(entityClass = ResultMap.class,
fields = {
@FieldResult(name = "generatedresult", column = "generatedresult"),
@FieldResult(name = "count", column = "count")
})})
})
当我为此查询编写resultset映射时,如下所示:
SELECT generatedresult,sum(size) as count FROM table1_detail AS w WHERE date > '2011.06.01' AND w.l_date < '2011.06.02' GROUP BY category ORDER BY count desc ;
@Entity
@Stateless
@Cache(type = CacheType.NONE, alwaysRefresh=true, shared=false, expiry=1, size=0)
@Cacheable(false)
@SqlResultSetMappings({
@SqlResultSetMapping(name = "ResultMapping",
entities = {
@EntityResult(entityClass = ResultMap.class,
fields = {
@FieldResult(name = "generatedresult", column = "generatedresult"),
@FieldResult(name = "count", column = "count")
})})
})
在另一个类中使用它,我得到了空结果。有人对这个问题有什么看法吗?我猜一猜,因为我对resultset映射了解不多。但是从您的SQL看来,您选择了总和作为计数,但是在映射中,您实际上是在寻找一个名为count的列。您好,这就是它在resultmapping中的用法。您可以在sql中随意命名列,然后在resultmapping中以这种方式调用它。无论如何,谢谢你的评论。