我正在尝试基于一个实体的所有实例的字段总和对约束进行建模,但收集器与 groupBy() 协同工作。我不需要分组,只需要所有实例的运算符。比如:
constraintFactory
.forEach(MeaningOfLife.class)
.sum(MeaningOfLife::getValue) // obviously doesn't work
.penalize(HardSoftScore.ONE_SOFT, totalMeaning -> totalMeaning != 42)
.asConstraint("Meaning of life is always 42");
我可能错误地建模了,我现在已经使用 EasyScoreCalculator 解决了这个问题,但我想将逻辑移至首选约束流方法。
从技术上来说,该问题的正确答案是“否”。 但实际上,这有点像“是”:
constraintFactory.forEach(MeaningOfLife.class)
.groupBy(sum(MeaningOfLife::getValue))
.penalize(HardSoftScore.ONE_SOFT, totalMeaning -> totalMeaning != 42)
.asConstraint("Meaning of life is always 42");