Я пытаюсь интегрировать OptaPlanner в свой проект. Я работаю с базой данных Spring jpa, maven и mysql. Я реализовал зависимости для моего файла maven, поэтому я могу использовать аннотации OptaPlanner, но я не знаю, как его использовать. Я читал документацию и примеры, но я все еще не знаю, как ее использовать.
Я должен назначить рецепты и пользователя для класса под названием FoodList. Каждый объект FoodList имеет идентификатор, 2 перечисления, рецепт, пользователя и дату, я показываю:
@PlanningEntity()
@Entity
public class ListaComida {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
private Comida comida;
@Enumerated(EnumType.STRING)
private Plato plato;
@PlanningVariable()
@ManyToOne
private Receta receta;
@PlanningVariable()
@ManyToOne
private Usuario usuario;
@Column(nullable = false)
private LocalDate fecha;
...
}
@PlanningSolution // OptaPlanner annotation
@TypeDef(defaultForType = HardSoftScore.class, typeClass = HardSoftScoreHibernateType.class) // Hibernate annotation
public class ListaComidaSolution {
@Columns(columns = {@Column(name = "hardScore"), @Column(name = "softScore")})
private HardSoftScore score;
@PlanningScore
public HardSoftScore getScore() {
return score;
}
public void setScore(HardSoftScore score) {
this.score = score;
}
}
<!-- Score configuration -->
<scoreDirectorFactory>
<easyScoreCalculatorClass>src/main/java/es.uca.AutomaticFoodList/GenerarComidaEasyScoreCalculator</easyScoreCalculatorClass>
<!--<scoreDrl>org/optaplanner/examples/cloudbalancing/solver/cloudBalancingScoreRules.drl</scoreDrl>-->
</scoreDirectorFactory>
<!-- Optimization algorithms configuration -->
<termination>
<secondsSpentLimit>30</secondsSpentLimit>
</termination>
public class GenerarComidaEasyScoreCalculator implements EasyScoreCalculator<ListaComidaSolution> {
public HardSoftScore calculateScore(ListaComidaSolution listaComidaSolution){
int hardScore = 0, softScore = 0;
return HardSoftScore.of(hardScore, softScore);
}
}
- Этот класс не реализован, но я думаю, что должен это сделать.
public static void generarListaComida(){
//SolverFactory<CloudBalance> solverFactory = SolverFactory.createFromXmlResource(
// "org/optaplanner/examples/cloudbalancing/solver/cloudBalancingSolverConfig.xml");
//Solver<CloudBalance> solver = solverFactory.buildSolver();
// Load a problem with 400 computers and 1200 processes
//CloudBalance unsolvedCloudBalance = new CloudBalancingGenerator().createCloudBalance(400, 1200);
// Solve the problem
//CloudBalance solvedCloudBalance = solver.solve(unsolvedCloudBalance);
// Display the result
//System.out.println("\nSolved cloudBalance with 400 computers and 1200 processes:\n"
// + toDisplayString(solvedCloudBalance));
}
Это все? классы и файлы, которые мне нужны для реализации этого в моем проекте? Или мне нужно реализовать больше классов?