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

【字号: 日期:2024-03-05浏览:31作者:雯心
如何解决在春季实施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吗?

相关文章: