如何解决在春季实施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
吗?
本文来自网友发布,不代表我们立场,转载联系作者并注明出处: