gpt4 book ai didi

java - JPA 查询.getResultList()?

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:07 26 4
gpt4 key购买 nike

我使用 JPA 1.0:

Query query;
query = em.createNamedQuery("getThresholdParameters");
query.setParameter(1, Integer.parseInt(circleId));

List<Object[]> resultList = new ArrayList();
resultList = query.getResultList();

这里我得到的结果为 List<Object[]> ,因此我必须将行的所有参数转换为各自的类型,这很麻烦。

在 JPA 2.0 中,有 TypedQuery,它返回指定类型的实体对象。

但是由于我使用的是 JPA 1,所以我无法使用它。

如何获取我想要的类型的实体对象结果?

编辑:查询

@Entity
@Table(name="GMA_THRESHOLD_PARAMETERS")
@NamedQuery(

name = "getThresholdParameters",

query = "select gmaTh.minNumberOc, gmaTh.minDurationOc, gmaTh.maxNumberIc, gmaTh.maxDurationIc, gmaTh.maxNumberCellId,"
+ "gmaTh.distinctBnumberRatio, gmaTh.minPercentDistinctBnumber from GmaThresholdParameter gmaTh "
+ "where gmaTh.id.circleId=?1 AND gmaTh.id.tspId=?2 AND gmaTh.id.flag=?3 "
)

最佳答案

您的查询选择了许多字段。此类查询始终返回对象数组的列表。如果您想要一个包含 GmaThresholdParameter 实体实例的列表,那么查询应该是

select gmaTh from GmaThresholdParameter gmaTh 
where gmaTh.id.circleId=?1 AND gmaTh.id.tspId=?2 AND gmaTh.id.flag=?3

获取实体列表的代码将是

List<GmaThresholdParameter> resultList = query.getResultList();

您将从编译器收到类型安全警告,您可以忽略该警告。

关于java - JPA 查询.getResultList()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20901282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com