如果您想创建自己的Repos(而不是创建对您有用的spring数据),您的示例还不错,我在一个应用程序中使用了类似的策略。
以下是改进通用方法的一些想法:我在基本域中添加了ID信息,该信息由所有域对象实现:
public interface UniqueIdentifyable<T extends Number> { T getId(); void setId(T id);}在下一步中,我创建了一个通用的CRUDRepo:
public interface CRUDRepository<ID extends Number, T extends UniqueIdentifyable<ID>>{ ID insert(T entity); void delete(T entity); ....}我正在为CRUDRepo使用一个抽象类:
public abstract class AbstractCRUDRepo<ID extends Number, T extends UniqueIdentifyable<ID>> implements CRUDRepo<ID, T>, {...}域存储库api现在看起来像:
public interface UserRepo extends CRUDRepo<Integer, User > { User mySpecificQuery(..);}最后,您可以通过以下方式实现您的存储库:
public class UserRepoImpl extends AbstractCRUDRepo<Integer, User > implements UserRepo { public User mySpecificQuery(..){..}}


