SQL : select * from member
JPQL : select m from member m
count, sum, avg, min, max 등)| JPQL | SQL |
|---|---|
| 엔티티와 속성을 대상으로 작동 | 테이블과 컬럼을 대상으로 작동 |
| 객체지향적인 쿼리 작성 가능 | 데이터 중심적 쿼리 작성 |
| 데이터베이스 독립적 | 특정 데이터베이스 종속적 |
| 연관 관계를 객체 필드로 표현 | Join으로 테이블 연결 필요 |
String jpql = "SELECT m FROM Member m WHERE m.name = :name";
TypedQuery<Member> query = em.createQuery(jpql, Member.class);
query.setParameter("name", "HelloA");
List<Member> result = query.getResultList();
String jpql = "SELECT m FROM Member m WHERE m.age > 30 ORDER BY m.name ASC";
List<Member> result = em.createQuery(jpql, Member.class).getResultList();
String jpql = "SELECT o FROM Order o JOIN o.member m WHERE m.name = :name";
TypedQuery<Order> query = em.createQuery(jpql, Order.class);
query.setParameter("name", "HelloA");
List<Order> result = query.getResultList();
em.createQuery("UPDATE Member m SET m.name = :name WHERE m.id = :id")
.setParameter("name", "UpdatedName")
.setParameter("id", 1L)
.executeUpdate();
em.createQuery("UPDATE Member m SET m.name = :name WHERE m.id = :id")
.setParameter("name", "UpdatedName")
.setParameter("id", 1L)
.executeUpdate();
em.createQuery("DELETE FROM Member m WHERE m.id = :id")
.setParameter("id", 1L)
.executeUpdate();
MAVEN으로 실습중이며,
persistence.xml의
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
value의 dialect 를 Oracle12cDialect 로 변환하면 자동으로 hibernate가 oracle 문법으로 자동변환해준다.