Spring Boot SonarQube抱怨JpaRepository方法名称

inkz8wg9  于 2023-01-26  发布在  Spring
关注(0)|答案(2)|浏览(104)

每个人如何解决与扩展JpaRepository的接口上的方法名相关的代码气味?在我的例子中,我有一个CpoWorkflowStepExecution实体,我想通过id和日期查找。
Cpo工作流程步骤执行:

@Entity
@Table(name = "cpo_workflow_step_execution", catalog = "cup_orchestrator")
public class CpoWorkflowStepExecution implements java.io.Serializable { 
    private Integer workflowStepExecutionId;
    private CpoWorkflowExecution cpoWorkflowExecution;
    private CpoWorkflowStep cpoWorkflowStep;
    private LocalDateTime startDate;
    private LocalDateTime finishDate;
    private String outcome;
    ...

工作流程步骤执行代表:

@Repository
public interface WorkflowStepExecRep extends JpaRepository<CpoWorkflowStepExecution, Integer>{

   Optional<CpoWorkflowStepExecution> findByCpoWorkflowStep_WorkflowStepIdAndFinishDateIsNull(String workflowStepId);

声纳数据库:重命名此方法名称以匹配正则表达式“^[a-z][a-zA-Z 0 -9]*$”。

polhcujo

polhcujo1#

我通过删除_字符更改了方法名称,它与SonarQube和JpaRepository完美配合:

findByCpoWorkflowStepWorkflowStepIdAndFinishDateIsNull
l2osamch

l2osamch2#

Spring Data使用_来解决多义性问题。您可以在使用Spring Data 存储库-属性表达式中找到更多详细信息。
您可能希望将Sonarqube的规则java:S100^[a-z][a-zA-Z0-9]*$更改为^[a-z][a-zA-Z0-9]+(_[a-zA-Z]+)*$,但这可能会导致误用

相关问题