java 如何使用@Query注解

dced5bon  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(208)

我正在尝试使用@Query在我的jpa仓库中创建一个自定义方法,但是在运行时遇到以下错误,请帮助我检查一下。提前感谢
下面是代码

public interface OrganizationRepository extends JpaRepository<Organization, Long> {
        
    List<Organization> findByDeleted(Boolean isDeleted);
    
    List<Organization> findAllByDeletedOrderById(Boolean isDeleted);

    @Query(value="SELECT * FROM ORGANIZATION WHERE id = :organizationId AND NAME LIKE %:organizationId% LIMIT 1 ", nativeQuery = true)
    Organization findFirstNameByNameLike(@Param("organizationId") Long organizationId, @Param("name") String name);
    
}

下面是运行时错误

Caused by: java.lang.IllegalStateException: Using named parameters for method public abstract com.oasis.firsbacklogbackend.entity.Organization com.oasis.firsbacklogbackend.repository.OrganizationRepository.findFirstNameByNameLike(java.lang.Long,java.lang.String) but parameter 'Optional[name]' not found in annotated query 'SELECT * FROM ORGANIZATION WHERE id = :organizationId AND NAME LIKE %:organizationId% LIMIT 1 '!

如果你能帮我

rfbsl7qr

rfbsl7qr1#

您使用了两次organizationId而不是name。如下所示:

@Query(value="SELECT * FROM ORGANIZATION WHERE id = :organizationId AND NAME LIKE %:name% LIMIT 1 ", nativeQuery = true)

相关问题