Class DatabaseConfig

java.lang.Object
com.proyecto.jpa.config.DatabaseConfig

@Configuration @EnableJpaRepositories(basePackages="com.proyecto.jpa.repository") @EnableTransactionManagement public class DatabaseConfig extends Object
Clase de configuración para la base de datos y JPA.

Esta clase configura los aspectos relacionados con la persistencia de datos, incluyendo la habilitación de repositorios JPA y la gestión de transacciones.

Funcionalidades Configuradas

  • Repositorios JPA: Escaneo automático en el paquete repository
  • Gestión de Transacciones: Soporte para @Transactional
  • EntityManager: Gestión automática del contexto de persistencia

Anotaciones Principales

  • @Configuration: Indica que es una clase de configuración de Spring
  • @EnableJpaRepositories: Habilita la detección automática de repositorios JPA
  • @EnableTransactionManagement: Habilita el soporte de transacciones declarativas

Configuración de Repositorios

Los repositorios JPA se escanean automáticamente en el paquete com.proyecto.jpa.repository. Cualquier interfaz que extienda JpaRepository será detectada y se creará una implementación automáticamente.

Gestión de Transacciones

Con @EnableTransactionManagement, todos los métodos anotados con @Transactional se ejecutarán dentro de una transacción. Si el método se completa sin errores, se hace commit; si hay una excepción, se hace rollback.

Ejemplo de Uso de Transacciones

 @Service
 public class OrderService {
     
     @Transactional
     public void createOrder(Order order) {
         // Si algo falla aquí, se hace rollback automáticamente
         orderRepository.save(order);
         // ...otras operaciones
     }
 }
 

Propiedades de Configuración

Las propiedades específicas de la base de datos se definen en application.properties:

  • spring.datasource.url - URL de conexión
  • spring.jpa.hibernate.ddl-auto - Estrategia de generación del esquema
  • spring.jpa.show-sql - Mostrar consultas SQL en logs
  • spring.sql.init.mode - Modo de inicialización de scripts SQL
Since:
1.0.0
Version:
1.0.0
Author:
Proyecto JPA
See Also:
  • EnableJpaRepositories
  • EnableTransactionManagement
  • Configuration
  • Constructor Details

    • DatabaseConfig

      public DatabaseConfig()
      Constructor por defecto.

      Spring Boot se encarga automáticamente de crear el DataSource, EntityManagerFactory y TransactionManager basándose en las propiedades definidas en application.properties.