Después de consultar especialistas en esta materia, programadores de varias áreas y maestros dimos con la solución a la interrogande y la compartimos en esta publicación.
Solución:
Ejemplo, en su interfaz de servicio:
public interface MyTableInterface
//...
void truncateMyTable();
En la implementación de su servicio (con @Autowired
myTableRepository):
public class MyTableImpl implements MyTableService
// other methods, @Autowiring, etc
@Override
@Transactional
public void truncateMyTable()
myTableRepository.truncateMyTable();
En tu repositorio;
public interface MyTableRepository extends JpaRepository
//....
@Modifying
@Query(
value = "truncate table myTable",
nativeQuery = true
)
void truncateMyTable();
EDITAR: También observe el @Transactional
en la capa de implementación del servicio, en lugar de colocarlo en la capa DAO/Repositorio
deleteAll está obteniendo todas las entidades y luego las elimina una por una:
// Code from SimpleJpaRepository
@Transactional
public void deleteAll()
for (T element : findAll())
delete(element);
Le sugiero que cree su propio método de eliminación en el repositorio como:
@Modifying
@Transactional
@Query("delete from MyEntity m")
void deleteAllWithQuery();
Esto creará solo una instrucción SQL DELETE.
Te mostramos las reseñas y valoraciones de los usuarios
Si te animas, tienes el poder dejar una reseña acerca de qué le añadirías a esta crónica.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)