Si vas a usar Hibernate, usa SpringBoot como te he dicho. Hibernate es JPA.
De hecho usarlo es tan sencillo como:
Te haces un proyecto ya predefinido estándar.
Generas las entidades a partir de la base de datos (es automático, hay manuales por la red)
Te haces una interfaz de repositorio que implemente JpaRepository o CrudRepository.
En la capa de servicio, haces toda la lógica que quieras. Por ejemplo, encontrar por ID. Llamas al repositorio, que ya tendrá implementada un método findById, y devuelves el resultado al Controller, que es el entrypoint.