简体   繁体   English

如何使用 Query.make() 单独选择特定列

[英]How to select specific columns alone using Query.make()

In guidewire, Query.make(EntityName).select() returns the entire column values, How should be the code if I need column specific result.Query.make(EntityName).select()Query.make(EntityName).select()返回整个列值,如果我需要特定于列的结果,代码应该如何。

For eg, If I just need PolicyNumber , PublicID and ID alone from Policy table, How should I write the code?例如,如果我只需要Policy表中的PolicyNumber , PublicID and ID ,我应该如何编写代码?

can you please try the below code.你能试试下面的代码吗?

var temp=Query.make(entity.Claim).select( \\ row -> row.ClaimNumber) var temp=Query.make(entity.Claim).select(\\row -> row.ClaimNumber)

Still not sure about it though.不过还是不确定。

var op = Query.make(PolicyPeriod).select({
    QuerySelectColumns.pathWithAlias("PolicyNumber", Paths.make(PolicyPeriod#PolicyNumber)),
    QuerySelectColumns.pathWithAlias("OfferNumber", Paths.make(PolicyPeriod#OfferNumber)),
    QuerySelectColumns.pathWithAlias("Id", Paths.make(PolicyPeriod#ID))
})

foreach(o in op){
  print(" Policy No : "+o.getColumn("PolicyNumber") +" | Offer No : "+o.getColumn("OfferNumber")+" | ID : "+o.getColumn("Id"))
}

在此处输入图片说明

I had the some question and I found the answer for this.我有一些问题,我找到了答案。 It is already commented above and I agree with them, adding left out code.上面已经评论过了,我同意他们的看法,添加了遗漏的代码。

var temp=Query.make(entity.Claim).select( \ row -> {return { row.ClaimNumber} as String[]})
for(row in temp){
print("Claim Number = " + row[0])
}

where \\ is lambda.其中 \\ 是 lambda。

I have tested this and it is working fine.我已经对此进行了测试,并且工作正常。

You never mentioned that you wanted to optimize.你从来没有提到你想要优化。 Please try the below code.请尝试以下代码。

var temp=Query.make(entity.Policy).compare("PolicyNumber" , Equals, "123456").select() var temp=Query.make(entity.Policy).compare("PolicyNumber" , Equals, "123456").select()

You can use other functions like Joins.您可以使用连接等其他功能。 Please let me know if it works or my understanding is right!请让我知道它是否有效或我的理解是正确的!

It's simple,这很简单,

Uses GW.api.database.Query
Var d=Query.make(PolicyPeriod).select()
For ( a in d){
Print ( d.PolicyNumber +" = " + d.ID +" = " + `d.PublicID)`
}

There are many approach by which we can achieve this.有很多方法可以实现这一点。 The simplest way would be storing the result in a variable and then selecting from that.最简单的方法是将结果存储在一个变量中,然后从中进行选择。 var temp=Query.make(entity.Policy).select() temp.each( \\ elt -> print(elt.PolicyNumber) var temp=Query.make(entity.Policy).select() temp.each(\\elt -> print(elt.PolicyNumber)

You can also use other filters like Compare,AtMostOneRow,FirstWhere您还可以使用其他过滤器,如 Compare、AtMostOneRow、FirstWhere

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM