1. 首页 > 开发编程

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

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

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
}

解决方法

我有从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吗?

本文来自网友发布,不代表我们立场,转载联系作者并注明出处:

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