我在 Guidewire PolicyCenter V9 中工作,我有一系列策略,我试图通过原始实体的扩展将它们存储在 Person 实体中。
我尝试在 Person.etx 上创建一个数组,但无法确定如何存储策略数组并将其链接到该实体。
小智 7
创建这样的数组很可能是不明智的,因为它会使已经存在的 Contact 和 PolicyPeriod 之间的关系非规范化。这不仅会代表数据库中的重复数据,还会存在需要维护的问题,并且可能与数据库中存在的现有关系不同步。
虚拟财产可能是这个问题的更好解决方案,因为它不可能引入数据库不一致,并且不会进一步使数据库非规范化。
我假设需要返回PolicyPeriods而不是策略,因为它们是策略交易的典型工作单元,以及包含策略编号的实体,但如果这不是您想要的,那么您只需将 elt.Branch 替换为 elt.Branch.Policy,并更改虚拟属性的返回类型和名称。
package com.acme.enhancements
uses gw.api.database.Query
uses gw.api.database.Relop
enhancement PersonEnhancement : entity.Person {
property get PolicyPeriods() : Set<PolicyPeriod> {
var policiesImPresentOn = Query.make(PolicyContactRole).compare(PolicyContactRole#ContactDenorm, Relop.Equals,this).select().toList()
var setToReturn = new HashSet<PolicyPeriod>()
policiesImPresentOn.each(\elt -> setToReturn.add(elt.Branch))
return setToReturn
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |