在guidewire中,Query.make(EntityName).select()
返回整列值,如果我需要列特定結果,代碼應該如何。如何使用Query.make單獨選擇特定列()
例如,如果我只需要從Policy
表中單獨需要PolicyNumber , PublicID and ID
,應該如何編寫代碼?
在guidewire中,Query.make(EntityName).select()
返回整列值,如果我需要列特定結果,代碼應該如何。如何使用Query.make單獨選擇特定列()
例如,如果我只需要從Policy
表中單獨需要PolicyNumber , PublicID and ID
,應該如何編寫代碼?
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"))
}
有很多方法可以實現這一點。最簡單的方法是將結果存儲在變量中,然後從中選擇。 變種臨時= Query.make(entity.Policy)。選擇() temp.each(\ ELT - >打印(elt.PolicyNumber)
您也可以使用其它過濾器一樣比較,AtMostOneRow,FirstWhere
你從來沒有提到你希望優化。 請嘗試下面的代碼。
變種臨時= Query.make(entity.Policy).compare( 「PolicyNumber」,等於 「123456」)。選擇()
您可以使用其他功能,如連接。請讓我知道,如果它的作品或我的理解是正確的!
Brother, 您的代碼將執行的操作將返回「policy No」='12345'的結果。爲了更清楚一點,它返回策略與給定值一起與其他字段匹配的特定(或組)行。用於我們的代碼的SQL查詢就像「SELECT * FROM TABLENAME WHERE xxx = yyy」。但在我的要求中,我不會在SELECT查詢中出現那個'*'。我只想要「PolicyNo」字段。希望這是有道理的。在我的問題中,我清楚地提到了如何從表中「如何選擇特定列」 –
你可以請嘗試下面的代碼。
變種臨時= Query.make(entity.Claim)。選擇(\行 - > row.ClaimNumber)
仍不能確定它雖然。
我想你不明白我的問題。我需要的是以下SQL Query的導向代碼。 「從策略中選擇policy_number」。 你所描述的是獲得所有的價值,並採取所需的。那不是正確的方法。 Query.make(Entity).select()從所有列中挑選所有值,我不知道什麼。我只需要一個特定列的值。 AtmostOneRow,FirstWhere,First,Last這些是結果過濾器,並不會優化此需求的代碼 –