Database Java EE getResultList()只返回对象,不返回相关的类类型对象

Database Java EE getResultList()只返回对象,不返回相关的类类型对象,database,jakarta-ee,object,jpa,jpql,Database,Jakarta Ee,Object,Jpa,Jpql,我使用这段代码从数据库中检索对象。此代码返回一个对象,但该对象的类型只是object 但是,我想返回类型Pcinitialdata。如上所述,它只返回Object,其类型为Object 我怎样才能解决这个问题 String qryStrforCom = "select pci.fileNo,pci.projectNo,pci.fundId,pci.decrp,pci.devSec,pci.estBy,pci.areaCode,pci.targetDate,pci.jobnoRecedate,pc

我使用这段代码从数据库中检索对象。此代码返回一个对象,但该对象的类型只是
object

但是,我想返回类型
Pcinitialdata
。如上所述,它只返回
Object
,其类型为
Object

我怎样才能解决这个问题

String qryStrforCom = "select pci.fileNo,pci.projectNo,pci.fundId,pci.decrp,pci.devSec,pci.estBy,pci.areaCode,pci.targetDate,pci.jobnoRecedate,pci.conBy,pci.supBy,pci.ht33,pci.lt11,pci.sub11,pci.lt3Phase,pci.ltsPhase,pci.abc5w,pci.abc4w,pci.abcsecct,pci.perCapacity,pci.newCapacity,pci.proLtrToEsOn,pci.stdCost,pci.detailCost,pci.varianceNew from Pcinitialdata pci where TRIM(pci.estNo) = :value";

Query querycom = getEntityManager(webAppName).createQuery(qryStrforCom);
querycom.setParameter("value", value);
List<Pcinitialdata> listCom=querycom.getResultList();
if (listCom.isEmpty()) {
    return null;
}
return listCom;
String qryStrforCom=“选择pci.fileNo、pci.projectNo、pci.fundId、pci.decrp、pci.devSec、pci.estBy、pci.areaCode、pci.targetDate、pci.jobnoRecedate、pci.conBy、pci.supBy、pci.ht33、pci.lt11、pci.sub11、pci.lt3Phase、pci.LTSpase、pci.abc5w、pci.abc4w、pci.abcsecct、pci.perCapacity、pci.newCapacity、pci.ProltToeson、pci.stdCost、pci.detailCost、,pci.varianceNew from Pcinitialdata pci,其中修剪(pci.estNo)=:值”;
queryquerycom=getEntityManager(webAppName).createQuery(qryStrforCom);
querycom.setParameter(“值”,值);
List listCom=querycom.getResultList();
if(listCom.isEmpty()){
返回null;
}
返回listCom;

createQuery
方法一起使用的查询语言是JPQL,而不是SQL

在JPQL中,您可以直接查询实体,并且不需要列出所有单个属性。尽管支持列出它们,但结果是一个单独属性的列表,而不是一个实体

此外,如果您至少使用JPA 2.0(Java EE 6),则可以在构造
查询
对象时输入类类型。然后,代码将变为:

String qryStrforCom = "select pci from Pcinitialdata pci where TRIM(pci.estNo) = :value";
TypedQuery<Pcinitialdata> querycom = getEntityManager(webAppName).createQuery(qryStrforCom, Pcinitialdata.class);
querycom.setParameter("value", value);
List<Pcinitialdata> listCom = querycom.getResultList();
if (listCom.isEmpty()) {
    return null;
}

return listCom;

我只是想知道,为什么你认为这个词是“retrive”?这不是一个英语单词,从上下文来看,它应该是“retrieve”谢谢你的帮助。我真的很感激。我是这个领域的新手,我真的不知道JPQL。我将尝试此代码并给您留下评论。。再次感谢……:)花了几个小时后,发现这个宝石答案,+1
return getEntityManager(webAppName)
    .createNamedQuery("Pcinitialdata.byEstNo", Pcinitialdata.class)
    .setParameter("estNo", estNo)
    .getResultList();