基于关键字的 JPA 查询,状态为枚举和 NOT 子句 [Kotlin]

问题描述

我有一个基于关键字的 JPA 查询,我需要修改以排除具有特定状态的记录。目前,我有以下几点:

public readonly QuizService quizService;
        public QuizModel(QuizService q){
            quizService = q;
        }

public void OnGet()
        {

            QuestionList = quizService.GetQuestions();
        }

我不想参数化,因此我想让查询工作,因为有一个 WHERE 子句说明状态不是 C,例如。我正在努力寻找有关如何进行的明确文档。是否可以按照以下方式写一些东西:

findAllByLatestVersion_Entity_datafieldGreaterThanEqualAndLatestVersion_AnotherFieldNull(datefield: Istant,pageable: Pageable)

谢谢

解决方法

不,这对于查询派生是不可能的,即您在此处使用的功能。即使有可能,你也不应该这样做。 查询派生旨在用于简单查询,在这种情况下,您无论如何都会选择的存储库方法的名称完美地表达了生成查询所需的所有信息。 它不打算替代 JPQL 或 SQL。 当生成的方法名称不是一个好的方法名称时,永远不应该使用它。

因此只需将查询表述为 JPQL 查询并使用 @Query 注释来指定它。