使用api主体动态发送的约束

问题描述 投票:0回答:2

我将约束提供程序实现类作为 Spring 组件,并将其注入到控制器中,我还创建了 ConstraintFactory 的配置 bean 实现,并将其也注入到我的控制器中。在 Web 服务中,我使用constraintProvider 和constraintFactory 获取所有约束,我使用来自Web服务的数据体过滤此约束,我在constraintProvider实现类中设置约束,但由于defineConstraints方法,它仍然使用所有约束,我认为该方法在项目执行中执行一次。我如何使用 Spring boot 和 Timefold 进行动态约束 我也想要一个代码示例 我如何做到这一点 我读了一些堆栈溢出的问题:

Optaplanner:动态添加/删除约束

如何根据 Timefold Spring Boot 中的前端输入动态选择对优化问题应用哪些约束?

我想要一个代码示例。我如何进行动态约束?

java spring-boot optaplanner timefold
2个回答
1
投票

看看@ConstraintConfiguration和@ConstraintWeight。


0
投票

如果我正确理解了答案(如何根据 Timefold Spring Boot 中的前端输入动态选择应该对优化问题应用哪些约束?),在 ConstraintProvider 中编写所有约束,在 ConstraintConfiguration 中可以执行以下操作像这样的:

  1. 将 ConstraintConfiguration 中的所有约束设置为零权重
  2. 在ConstraintConfiguration的初始化阶段(在构造函数或@PostConstruct中),您可以从数据库中获取所有约束(这将是一个字符串列表)
  3. 对于列表中的每个约束,检查约束是否也可以在 ConstraintProvider 中找到。如果可以在那里找到约束,请添加一些权重以供求解器考虑。

如有错误,请指正。希望这个回答对你有帮助。

您可以在这里找到更多信息:https://timefold.ai/docs/timefold-solver/latest/constraints-and-score/constraint-configuration#constraintWeight

© www.soinside.com 2019 - 2024. All rights reserved.