当前位置: 首页 > 知识库问答 >
问题:

如何在自定义spring存储库中实现自定义方法?[副本]

姬高澹
2023-03-14

假设我想有一个方法,它是获得超级主要客户,它有id=0

@Entity
public class Customer {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;
    private String firstName;
    private String lastName;

    protected Customer() {}

    public Customer(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    @Override
    public String toString() {
        return String.format(
                "Customer[id=%d, firstName='%s', lastName='%s']",
                id, firstName, lastName);
    }

}
public interface CustomerCustom {

   Customer getVeryMainCustomer();

}

其中声明了方法GetVeryMainCustomer

然后我的公开存储库界面变成以下内容:

public interface CustomerRepository extends CrudRepository<Customer, Long>, CustomerCustom {

    List<Customer> findByLastName(String lastName);
}

它扩展了CrudRepository和myCustomerCustom

我写的

public class CustomerCustomImpl implements CustomerCustom {

   @Override
   public Customer getVeryMainCustomer() {
      return null;
   }


}

bot不知道,在实现中写什么。如何接触客户?

共有1个答案

宰宣
2023-03-14

使用@query:

public interface CustomerRepository extends CrudRepository<Customer, Long> {

    List<Customer> findByLastName(String lastName);

    @Query("SELECT c FROM Customer c WHERE c.id = 0")
    Customer getVeryMainCustomer();
}

Spring-data将使用注释中的查询为您处理实现。

 类似资料:
  • 我有一个实体类称为和一个仓库声明如下: 自定义存储库的定义如下: 和 下面是另一个堆栈溢出问题中描述的内容:如何向Spring数据JPA添加自定义方法 现在,IntelliJ给了我一个警告: 我尝试将这些注释添加到中,但没有一个成功: 但都不管用。显然有些是错的,但我在试验。正确的注释是什么。 使用,我得到了以下错误:

  • 在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS

  • 我使用的是Spring数据JPA1.10.11。释放 我有一个基础存储库,所有其他存储库都会扩展它。这部分有效。 我还想为一些要扩展的存储库声明一个自定义接口。所以我声明了一个接口和一个“Impl”类: 然后,我创建一个现有的工作存储库来扩展这个新接口: 注意:此存储库在扩展TestRepository之前工作,但是在如上扩展之后,应用程序上下文将无法以错误开始: 配置如下所示: 我觉得我一直在遵

  • 如果你需要提供自定义文件存储 – 一个普遍的例子是在某个远程系统上储存文件 – 你可以通过定义一个自定义的储存类来实现。你需要遵循以下步骤: 1. 你的自定义储存类必须是django.core.files.storage.Storage的子类: from django.core.files.storage import Storage class MyStorage(Storage):

  • 我正在使用Spring开发一个应用程序。在Access Control Access一节中,我想使用Spring Security Acl(我是Acl的新手)。我想在我的应用程序中实现ACL基于两点: 应用程序应该具有以下五种权限:、、、和。 权限是分层的,当用户具有权限时,它应该能够,或者当用户具有权限时,它应该能够、和等。 更新: 我的应用程序是基于Spring MVC RESTful的。当用

  • 我最终不得不在文件。定义通常非常繁琐: 注意上面gradle提供了一种定义常用maven存储库的好方法(即)。我想在插件或父gradle脚本中找到一种方法,在函数中或静态地定义存储库,然后在块中调用它:。 我缺乏groovy方面的知识,因此我不太了解解析groovy源代码所需的知识,我正在寻找一种很好的方法来实现这一点。我该怎么做? 我知道在父级gradle文件中,我可以使用或。我不想将这些mav