当前位置: 首页 > 面试题库 >

如何向Spring Data JPA添加自定义方法

杜河
2023-03-14
问题内容

我正在研究Spring Data JPA。考虑下面的示例,默认情况下我将使所有crud和finder功能正常工作,如果我想自定义finder,那么也可以在界面本身中轻松完成。

@Transactional(readOnly = true)
public interface AccountRepository extends JpaRepository<Account, Long> {

  @Query("<JPQ statement here>")
  List<Account> findByCustomer(Customer customer);
}

我想知道如何为上述AccountRepository的实现添加完整的自定义方法?由于它是一个接口,所以我不能在那里实现该方法。


问题答案:

你需要为自定义方法创建一个单独的接口:

public interface AccountRepository 
    extends JpaRepository<Account, Long>, AccountRepositoryCustom { ... }

public interface AccountRepositoryCustom {
    public void customMethod();
}

并提供该接口的实现类:

public class AccountRepositoryImpl implements AccountRepositoryCustom {

    @Autowired
    @Lazy
    AccountRepository accountRepository;  /* Optional - if you need it */

    public void customMethod() { ... }
}


 类似资料:
  • 我的工具基本上读取PDF并在JTextArea中打印PDF的内容。在我的PDF包含阿拉伯语的PH Mirjan字体之前,一切正常。我的文本区域显示一些垃圾字符,如下所示。 我该如何解决这个问题? 我的文本区域的默认字体是Arial Unicode MS。我可以配置文本区域的字体吗?假设我在本地下载了PH Mirjan,如何将文本区域字体更改为下载的字体。非常感谢任何建议或参考链接。 编辑 这给了我

  • 我想添加“from”(date)来响应datepicker输入,但到目前为止,我有一些奇怪的行为。 我的代码: 到目前为止,我试过: 和 但这两种解决方案都将我的日期从“2020年9月14日16:43”转变为“从周一9月14 2020 17:19:38格林尼治标准时间0400(留尼汪岛)”,这是不必要的行为,因为我绝对想要法语日期。任何想法?谢啦

  • 我必须将自定义方法方法添加到我的日志系统中。假设我有几行代码,例如: 日志记录由slf4j处理。如何通过添加新(!)扩展我的记录器方法,如public void error(SomeTypeObject obj){/implementation/} 目标是不更改现有代码。如何强制LoggerFactory返回使用上述方法扩展的自己的记录器实现? 我跟踪了这个问题的答案:stackoverflow.

  • 在我的SpringMVC应用程序中,我试图创建一个自定义的thymeleaf方言来将ASCII字符串转换为文本。我能够创建前缀不是的方言。但是如果我尝试使用作为前缀,那么服务器将抛出以下运行时异常。 基本上,我需要在这里实现的是创建一个像这样的自定义方言。任何帮助都将不胜感激。 注:如果有人需要查看我已经尝试过的代码,请在评论部分提问。

  • 在中有一个方法,但它看起来不像是一个公共API,所以我宁愿不使用它。创建自定义指令并使用看起来是另一种选择,但基本上需要为每个自定义验证规则创建一个指令,而我不希望这样做。 实际上,在最简单的场景中,将控制器中的某个字段标记为无效(同时保持同步)可能是我完成任务所需要的,但我不知道如何做到这一点。

  • 问题内容: 在Ruby中,您可以使用自定义方法覆盖任何内置对象类,如下所示: 我如何在python中做到这一点?有正常的方法还是黑客? 问题答案: 您不能这样做,因为内建类型是用C编码的。您可以对类型进行子类化: 测试: 您还可以使用来覆盖str-type ,但这并不意味着您可以使用文字,因为它链接到内建的。