데이터베이스와 상호작용할 때 SQL 쿼리를 직접 작성해 사용
데이터 매핑을 위해 XML 또는 어노테이션을 사용합니다.
JPA는 객체와 관계형 데이터베이스 간의 매핑을 제공하며, JPQL(Java Persistence Query Language)을 사용하여 데이터베이스와 상호작용합니다.
1. 코드를 줄일 수 있습니다. - 더 간단하고 간결한 API를 제공합니다.
2. 개발자 생산성을 향상하고 오류를 줄일 수 있습니다.
3. 타입 안정성이 더 좋고 지연로딩을 통해 애플리케이션 성능을 개선할 수 있습니다.
4. 다양한 데이터베이스와 함께 사용하거나 다른 JPA 구현체로 전환하는 것이 더 쉽습니다.
5. JPA는 Java EE 명세이므로 서로 다른 애플리케이션 서버 및 환경에서도 호환성을 보장합니다.
6. 대규모 프로젝트나 유연성과 확장성이 필요한 프로젝트에서 더 나은 선택이 될 수 있습니다.
SQL 쿼리를 직접 작성하는 것을 선호하거나 데이터베이스 상호 작용에 대한 더 많은 제어를 원하는 개발자의 경우 MyBatis를 사용할 수 있지만,
MyBatis와 비교했을 때 JPA의 장점으로는 더 간단하고 간결한 API를 제공해서 개발자 생산성을 높일 수 있고 오류를 줄일 수 있습니다. 또한 다른 DB와 함께 사용하거나 다른 JPA 구현체로 전환하는 것도 쉬우며 다른 애플리케이션과 호환성이 좋고 유연성과 확장성이 필요한 프로젝트에 더 알맞습니다.