Class JpqlRepairService

java.lang.Object
io.jmix.aitools.dataload.repair.JpqlRepairService

@Component("aitls_JpqlRepairService") public class JpqlRepairService extends Object
Repairs an invalid query by running the configured JpqlRepairer, re-validating after each attempt until the query becomes valid or the attempt limit is reached.

If no JpqlRepairer bean is available, the query is returned unchanged.

  • Field Details

    • dataLoadProperties

      @Autowired protected AiToolsDataLoadProperties dataLoadProperties
    • jpqlValidationService

      @Autowired protected JpqlValidationService jpqlValidationService
    • jpqlRepairerProvider

      @Autowired protected org.springframework.beans.factory.ObjectProvider<JpqlRepairer> jpqlRepairerProvider
  • Constructor Details

    • JpqlRepairService

      public JpqlRepairService()
  • Method Details

    • repairIfNeeded

      public JpqlRepairResult repairIfNeeded(JpqlExecutionRequest executionRequest, GeneratedJpqlResult generatedJpqlResult, JpqlValidationResult validationResult)
      Repairs the query if its validation failed, using the configured maximum number of attempts.
      Parameters:
      executionRequest - original execution request
      generatedJpqlResult - current query draft
      validationResult - validation result of the current draft
      Returns:
      repair result; the query is returned unchanged if it is already valid
      See Also:
    • repairIfNeeded

      public JpqlRepairResult repairIfNeeded(JpqlExecutionRequest executionRequest, GeneratedJpqlResult generatedJpqlResult, JpqlValidationResult validationResult, int maxRepairAttempts)
      Repairs the query if its validation failed, retrying up to maxRepairAttempts times.

      The query is returned unchanged (with repaired = false) if it is already valid, if maxRepairAttempts is not positive, or if no JpqlRepairer bean is available.

      Parameters:
      executionRequest - original execution request
      generatedJpqlResult - current query draft
      validationResult - validation result of the current draft
      maxRepairAttempts - maximum number of repair attempts
      Returns:
      repair result with the final query draft and its validation result