【问题标题】:Can you send a Query object as parameter to a SpringData Repository method?您可以将 Query 对象作为参数发送到 SpringData Repository 方法吗?
【发布时间】:2021-05-15 16:57:40
【问题描述】:

我正在阅读这篇关于 Spring Data JPA 的 link,它让我很好奇:你可以创建一个查询,然后将其用作方法的参数,而不是使用 @Query 注释吗?

更多这样的:

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

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

【问题讨论】:

    标签: java spring spring-data-jpa spring-data


    【解决方案1】:

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

    @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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多