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

在春季实施CrudRepository。我应该遵循的最佳设计是什么?

戴嘉珍
2023-03-14
问题内容

我有从CrudRepository扩展的User Repository,如下所示

public interface UserRepository extends CrudRepository<User, Long>, DatatablesCriteriasRepository<User>

DatatablesCriteriasRepository 具有需要针对不同存储库分别实现的功能。

因此,我创建了这样的存储库实现类。在impl包装中。

public class UserRepositoryImpl implements DatatablesCriteriasRepository<User>

请注意,这仅用于实现功能DatatablesCriteriasRepository。我不想覆盖CrudRepository该框架中提供的默认功能。

但如果我这样做,它会更适合在代码设计,UserRepositoryImpl真正实现UserRepository顾名思义。

public class UserRepositoryImpl implements UserRepository

但这又将迫使我扩展UserRepository接口中的所有功能。如何通过良好的代码设计解决此问题?

实现时可以使用UserRepositoryImpl这个名称DatatablesCriteriasRepository吗?


问题答案:

Spring的存储库定制实现文档提供了@JBNizet向我指出的实现该方法的方法。

从文档中摘录如下。

定制存储库功能的界面

interface UserRepositoryCustom {
  public void someCustomMethod(User user);
}

定制存储库功能的实现

class UserRepositoryImpl implements UserRepositoryCustom {

  public void someCustomMethod(User user) {
    // Your custom implementation
  }
}

对基本存储库界面的更改

interface UserRepository extends CrudRepository<User, Long>, UserRepositoryCustom {

  // Declare query methods here
}


 类似资料:
  • 本文向大家介绍设计微服务的最佳实践是什么?相关面试题,主要包含被问及设计微服务的最佳实践是什么?时的应答技巧和注意事项,需要的朋友参考一下 以下是设计微服务的最佳实践: 为每个微服务分开数据存储 将代码保持在类似的成熟度等级上 为每个微服务进行单独的构建 部署到容器中 将服务器视为无状态的

  • 问题内容: 我有一个使用 像素 渲染页面的网站。但是,当我在具有不同屏幕分辨率的不同设备中查看网站时, 整个页面将无法容纳在屏幕中 ,如果我使用 百分比 ,页面内容将会 受到挤压 。 是响应式网页设计是设计网页的正确选择。如果是这样,我几乎不用担心。 将现有网站转换为包含响应式设计所涉及的风险是什么? 有没有可用的框架来做到这一点,哪个是最好的框架 设备和浏览器如何支持它 问题答案: 使用媒体查询

  • 问题内容: 我的快速搜索显示了参考实现(http://stax.codehaus.org),Woodstox实现(http://woodstox.codehaus.org)和Sun的SJSXP实现(https://sjsxp.dev.java.net / )。 请评论它们的相对优点,并让我介绍我应考虑的任何其他实现。 问题答案: 伍德斯托克斯为我赢得了每一次胜利。这不仅是性能,而且-sjsxp抽搐

  • 我试图使用Kotlin实现干净的架构。这一过程的流程将是: 代码示例:

  • 在解释我的问题之前,我应该做一些理论... 对于车辆,我指的是所有可以通过公路运输货物的东西:轿车、货车、卡车、拖车(或公路列车,我不知道正确的术语)、半拖车(也称为铰接式卡车或牵引拖车)。 关于汽车,货车和卡车,没有问题:它们具有板块,可运输的重量和体积以及其他数据。 但是另外两辆车更复杂。它们可能有一个额外的车牌和其他额外的数据。特别是: > 半挂车卡车(也称为牵引拖车)是一种复杂的车辆,由道

  • 我们最近讨论了如何删除我们可能拥有的任何循环导入,并重构我们的代码以不再在函数中使用导入。 在许多地方(包括这里的PEP-8风格指南-在imports下)推荐的方法之一是使用: 而不是: 我看到了一些例子,并且确信这可能是一种更好的导入方式(尽管我已经习惯了< code>from的导入方式)。 但我不明白为什么 99% 的 python 示例不使用这种导入方式。以及为什么我的 pycharm 不允