¿Es posible crear un CRUD genérico en el arranque de la primavera

Shafqat página:

Tengo una situación en la que tengo que crear ABM durante más de cinco entidades. Por lo tanto, yo estaba pensando si es posible crear un CRUD genérico de modo que pueda tener menos código en lugar de crear CRUD individual para cada entidad. Quiero crear un CRUDUtility genérico que puedo llamar desde cada controlador métodos entidades, y desde que la utilidad Quiero llamar a la clase de servicio genérico y la interfaz de repositorio genérico.

Esto es lo que quiero.

Utilidad de que i puede llamar desde cada controlador de entidad:

@Component
public class CRUDUtility<T> {

    @Autowired
    private CRUDService<T> crudService;

}

La clase de servicio para llamar a la clase CRUDUtility.

@Service
public class CRUDService<T> {
    @Autowired
    private CRUDRepository<T> crudRepository;

    public T createEntity(T entityTypeParam) {

        return crudRepository.save(entityTypeParam);
    }

}

Repositorio para llamar desde CRUDService:

@Repository
public interface CRUDRepository<T> extends JpaRepository<T, Number> {


}

Gracias.

Vasily Komarov:

Sí, se puede crear un CRUD genérica

Desde la primavera 4 que puede hacer autowiring por tipo genérico.

public interface CRUDService<T> {
    List<T> listAll();

    T getById(Long id);

    T saveOrUpdate(T domainObject);

    void delete(Long id);
}

@Service
public FirstService implements CRUDService<First>{
.........................
}

@Service
public SecondService implements CRUDService<Second>{
.........................
}

@RestController
public MyController {
    @Autowired
    private CRUDService<First> firstService;

    @Autowired
    private CRUDService<Second> secondService;

}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=213518&siteId=1
Recomendado
Clasificación