如果我们需要考虑临时索赔的两种状态(例如- Draft和Closed状态),那么我们如何使用Query来使用这些状态?我试过了-
var claims = Query.startswith("ClaimNumber", "TMP", false)
.compareIn(Claim#State, {ClaimState.TC_DRAFT, ClaimState.TC_CLOSED}.toArray())
.select()上面的代码行抛出空指针错误。有人能帮上忙吗?
发布于 2020-05-21 12:39:53
我相信索赔实体有足够的数据来查询。
我还看到您给出的代码中缺少"make“语句。在你的Gosu Scratchpad中尝试下面的查询,
uses gw.api.database.Query
var claims = Query.make(Claim)
.startsWith("ClaimNumber","TMP",false)
.compareIn(Claim#State, {ClaimState.TC_DRAFT, ClaimState.TC_CLOSED} as ClaimState[])
.select()
for(claim in claims){
print(claim.ClaimNumber)
}如果您仍然面临任何问题,请提供您得到的异常。
如果我的信息解决了您的问题,请将答案标记为正确。
发布于 2020-05-23 11:11:16
尝试使用 or block,
uses gw.api.database.Query
var queryCliamState= Query.make(entity.Claim)
.compare("ClaimNumber", Equals, "12345")
.or(\orCondition -> {
orCondition.compare("State" , Equals,typekey.ClaimState.TC_DRAFT)
orCondition.compare("State" , Equals,typekey.ClaimState.TC_CLOSED)
}) .select()您正在比较的-When确保状态等于数据库字段。
发布于 2021-08-10 22:53:00
看起来你遗漏了make这句话:
var claims = Query.make(Claim).startsWith("ClaimNumber", "TMP", false)
.compareIn(Claim#State, {ClaimState.TC_DRAFT, ClaimState.TC_CLOSED}.toArray())
.select()在那之后它应该会工作。
https://stackoverflow.com/questions/61919049
复制相似问题