JPA는 자바진영의 ORM표준이다.

<aside> 💡 자바 표준의 의미 여기서, 자바표준을 따른다는 말자바진영(자바표준을 따르는 다른 library)에서 해당 기능을 호환시키기 위해 맞춰야할 기능 명세서와 같다. 즉 이 말은 Interface로 되어 있다는 말이 되고 JPA또한 해당 자바 표준을 따른다는 말이 된다.

</aside>

→ JPA라는 것은 자바표준을 따르는 인터페이스이고 이것을 구현한 것이 Hibernate, EclipseLink, DataNucleus가 있다. (여기서 Hibernate가 90%이상 비중을 차지한다고 봐도 무방하다 )

<aside> 💡 Hibernate란? JPA표준을 구현한 구현체중에 하나.

</aside>


Why JPA (Java Persistence API)?

예를 들어 아래와 같이 자바코드상에서 객체 자체를 **.save(object)**함으로써 DB에 저장할 수 있다

//이건 순수 JPA만 사용했을때
//영속화
jpa.persist(member);

//조회
jpa.find(memberId);

//수정
member.setName("변경할 이름");

//삭제
jpa.remove(member);
//Spring Data JPA를 사용했을때
String name = "Lee";
String id = "thlee";
String password = "new1234!";
User user = new User(name, id, password);

@Autowired UserRepository userRepository;
userRepository.save(user);

/*---------------------------------------------*/
//SQL로 하기 위해서는 Insert구문을 짜야하고 위의 name, id, password를 따로 DB로 보내야한다.

순수 JPA와 Spring Data JPA의 차이는 무엇일까?

JPA - 프로젝트 생성 및 설정