gpt4 book ai didi

java - Drools 从对象属性收集列表

转载 作者:行者123 更新时间:2023-12-02 10:23:09 25 4
gpt4 key购买 nike

我有一个学生,他有类(class)列表。另外,我有一个讲座,我需要检查学生类(class)列表和他访问的讲座类(class)列表是否相同

我添加了以下情况的规则:当学生访问讲座时,他在类(class)列表中没有:

    when
$student:Student ($courses:courses)
LectureAssignment(student == $student, course not memberOf $courses)
then
scoreHolder.addHardConstraintMatch(kcontext, -1);

但我还需要检查该学生访问了他在类(class)列表中的所有讲座

    $student:Student ($courses:courses)
$rightCourses: collect (LectureAssignment(student == $student)) // and get courses list

在这里我得到分配给当前学生的讲座,所有讲座都有属性类(class),我需要将它们收集到列表 $rightCourses 中,然后比较 $courses 和 $rightCourses (在这种情况下我认为我不需要第一条规则)

最佳答案

您可以使用 forall 运算符。请参阅此处的文档 [1]。如果这对您不起作用,您可以使用累积 [2],检查学生分配的讲座计数是否正确,并结合第一个规则检查学生是否未分配不属于该类(class)的类(class)类(class)列表。

[1] https://docs.jboss.org/drools/release/7.16.0.Final/drools-docs/html_single/index.html#_conditional_element_forall
[2]https://docs.jboss.org/drools/release/7.16.0.Final/drools-docs/html_single/index.html#_conditional_element_accumulate

关于java - Drools 从对象属性收集列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54182500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com