【发布时间】:2019-01-03 06:45:06
【问题描述】:
我有一种情况,我必须为五个以上的实体创建 CRUD。所以,我在想是否可以创建一个通用的 CRUD,这样我就可以使用更少的代码,而不是为每个实体创建单独的 CRUD。 我想创建一个通用的 CRUDUtility,我可以从每个实体控制器方法调用它,并且我想从该实用程序调用通用服务类和通用存储库接口。
这就是我想要的。
我可以从每个实体控制器调用的实用程序:
@Component
public class CRUDUtility<T> {
@Autowired
private CRUDService<T> crudService;
}
要从 CRUDUtility 类调用的服务类。
@Service
public class CRUDService<T> {
@Autowired
private CRUDRepository<T> crudRepository;
public T createEntity(T entityTypeParam) {
return crudRepository.save(entityTypeParam);
}
}
从 CRUDService 调用的存储库:
@Repository
public interface CRUDRepository<T> extends JpaRepository<T, Number> {
}
谢谢。
【问题讨论】:
-
考虑使用 JPA,它有你需要的方法,你只需要将你的实体映射到数据库表。
-
使用 JPARepository 接口代替 CrudRepository
-
我已经这样做了,但我想要一个用于服务和存储库的通用类
-
只需创建一个包含该类型的泛型类
标签: java spring spring-boot