[스프링] JPA와 데이터베이스 연동
스프링 프레임워크는 JPA(Java Persistence API)와 데이터베이스를 쉽게 연동할 수 있는 기능을 제공합니다. JPA는 자바 개체를 관계형 데이터베이스와 매핑하기 위한 API이며, 스프링은 JPA와의 통합을 통해 데이터베이스 연동을 간편하게 처리할 수 있습니다.
JPA 설정
@Configuration
@EnableTransactionManagement
public class JpaConfig {
@Autowired
private DataSource dataSource;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
em.setPackagesToScan("com.example.model");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
return em;
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
}
위의 설정은 LocalContainerEntityManagerFactoryBean
을 사용하여 JPA를 활성화하고, dataSource
와 EntityManagerFactory
를 설정합니다.
엔티티 클래스 생성
@Entity
@Table(name = "employee")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
// Getters and Setters
}
위의 코드는 @Entity
어노테이션으로 해당 클래스가 JPA 엔티티임을 명시하고, @Table
어노테이션으로 테이블과 매핑합니다. 또한 @Id
와 @Column
어노테이션을 사용하여 각 필드를 기본 키 및 열과 매핑합니다.
Repository 인터페이스 생성
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
// 추가적인 메서드 정의 가능
}
위의 코드는 JpaRepository
를 상속하는 인터페이스로, JPA에 의해 엔티티에 대한 CRUD 기능을 제공합니다. 추가적으로 메서드를 정의하여 사용자 정의 쿼리를 실행할 수도 있습니다.
이러한 설정과 코드를 사용하여 스프링 프레임워크를 통해 JPA와 데이터베이스를 연동할 수 있습니다.
참고 자료: