繁体   English   中英

自定义查询 Spring 数据 JPA

[英]Custom Query Spring Data JPA

我需要在我的存储库中扩展 CrudRepository 的自定义查询

@Repository
public interface SongListRepository extends CrudRepository<SongList, Integer> {

    @Query("SELECT sl FROM song_list sl WHERE sl.owner=:owner")
    Set<SongList> findAllSongListsForUser(
            @Param("owner") String owner);
}

当我尝试启动以下异常时:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'songListController': Unsatisfied dependency expressed through field 'songListService';

nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'songListService': Unsatisfied dependency expressed through field 'repository';

nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'songListRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.Set htwb.ai.songsservice.repository.SongListRepository.findAllSongListsForUser(java.lang.String)!

如何在 CrudRepository 中创建自定义查询?

您不需要创建自己的查询。 只需使用基于方法签名的自动生成查询。

List<SongList> findAllByOwner(String owner);

这将创建查询。

使用 JPQL,或者如果您想在代码中使用 SQL,请使用以下原生查询:

@Query(value="SELECT sl FROM song_list sl WHERE sl.owner=:owner",nativeQuery=true)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM