Java 能否将查询对象作为参数发送到SpringData存储库方法?

Java 能否将查询对象作为参数发送到SpringData存储库方法?,java,spring,spring-data-jpa,spring-data,Java,Spring,Spring Data Jpa,Spring Data,我读了这篇关于SpringDataJPA的文章,这让我很好奇:你能创建一个查询,然后将它作为方法的参数,而不是使用@Query注释吗 更像这样: @Repository public interface MyRepository extends CrudRepository<MyClass, Integer> { void doSomething(Query query); } @存储库 公共接口MyRepository扩展了Crudepository { 无效剂量测定(查

我读了这篇关于SpringDataJPA的文章,这让我很好奇:你能创建一个查询,然后将它作为方法的参数,而不是使用@Query注释吗

更像这样:

@Repository
public interface MyRepository extends CrudRepository<MyClass, Integer>
{
    void doSomething(Query query);
}
@存储库
公共接口MyRepository扩展了Crudepository
{
无效剂量测定(查询);
}

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

您不能创建一个实现类,而可以编写如下接口方法:

@Repository
public interface MyRepository extends CrudRepository<MyClass, Integer>
{
    void doSomething(Query query);
}
@实体
公共课部分{
@GeneratedValue(策略=GenerationType.IDENTITY)
@身份证
私人长id;
@列(唯一=真)
私有字符串部分;
公共部分(){
}
公共部分(字符串部分){
this.partId=partId;
}
公共字符串getPartId(){
回归党;
}
公共void setPartId(字符串partId){
this.partId=partId;
}
公共集getCards(){
回程卡;
}
}
公共接口PartRepository扩展了Crudepository{
公共可选findByPartId(字符串partId);
公共列表findAllByPartId(字符串partId);
}
Spring会在后台自动将这些行转换为SQL,您不应该在意这一点

您可以在此处找到一些详细信息: