如何仅从 guidewire v10 中的 querybuilder 返回选定的列?

问题描述

我只想从实体检查中返回两列。我在下面尝试过,但它不起作用。请注意,我使用的是 Guidewire 版本 10。

Query.make(entity.Check) .compare(Check#Createtime,Equals,time) .select({QuerySelectColumns.pathWithAlias("CheckNumber",Paths.make(Check#CheckNumber)),QuerySelectColumns.pathWithAlias("InvoiceNumber",Paths.make(Check#InvoiceNumber)) })?.FirstResult

解决方法

您可以使用以下代码段。

var conQuery = Query.make(Person).select(\row -> new String[]{row.FirstName,row.LastName}) print(conQuery.first()) //只打印第一行

这里 conQuery 的返回类型将是 IQueryBeanResult。 每个返回的行将包含带有 FirstName 和 LastName 的 String 数组。

如果只需要名字,使用 => select(\row -> row.FirstName)

,

你说它不起作用是什么意思?坐回给你什么?

var query = Query.make(Check) .compare(ReasonCodeParametersRgs#ProductCode,Equals,"smth") 。选择({ QuerySelectColumns.pathWithAlias("CheckNumber",Paths.make(Check#Field1)),QuerySelectColumns.pathWithAlias("InvoiceNumber",Paths.make(Check#Field2)) })

var count: Integer = query?.FirstResult?.ColumnCount print("!!!count = " + count)

如果查询有任何行,此代码返回 2,如果查询为空,则返回 0。我已经用不同的实体和条件检查过