您可以将 Query 对象作为参数发送到 SpringData Repository 方法吗?

Can you send a Query object as parameter to a SpringData Repository method?

我正在读这个 link 关于 Spring Data JPA 的文章,这让我很好奇:除了使用 @Query 批注,您可以创建一个查询,然后将其用作方法的参数吗?

更多类似内容:

@Repository
public interface MyRepository extends CrudRepository<MyClass, Integer>
{
    void doSomething(Query query);
}

(顺便说一句,我知道我可以实现一个片段存储库并解决我的问题,但我很好奇)

您无法创建实现 class,您可以像这样编写接口方法:

@Entity
public class Part {

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
    private Long id;

    @Column(unique = true)
    private String partId;

    public Part() {

    }

    public Part(String partId) {
        this.partId = partId;
    }

    public String getPartId() {
        return partId;
    }

    public void setPartId(String partId) {
        this.partId = partId;
    }

    public Set<Card> getCards() {
        return cards;
    }

}


public interface PartRepository extends CrudRepository<Part, Long> {

    public Optional<Part> findByPartId(String partId);
    
    public List<Part> findAllByPartId(String partId);
}

Spring 在后台自动将这些行转换为 SQL,你不应该关心那个。

您可以在此处找到一些详细信息:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods