17
Introduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 리고 XML도 싫어요.

Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

  • Upload
    others

  • View
    29

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Introduce Spring Data JPA

나는 SQL Hell이 싫어요. 그리고 XML도 싫어요.

Page 2: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

SQL

Structure Query Language(구조적 질의 언어)

극악 JDBC 핸들링이 시작되었다.

Page 3: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

iBatis가 나를 구원해 주었나?

Page 4: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Spring JdbcTemplate

살짝 살려는 줬지만......

Page 5: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

JPA?

Java Persistence APIjavax.persistence.* package!

Page 6: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Spring

Page 7: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Spring Data

http://www.springsource.org/spring-data

Page 8: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Spring Data JPA

● 쉽다.● 간편하다.● ORM툴에 독립적이다.

Page 9: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Repositories

public interface Repository<T, ID extends Serializable> {}

Page 10: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Repositories

Repository CrudRepository PagingAndSortingRepository JpaRepository

Page 11: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Repository keywordpublic interface EmployeeRepository<Employee, String> { List<Employee> findByName(String name); List<Employee> findByName(String name, Sort sort); List<Employee> findByName(String name, Pageable pageable, Sort sort); List<Employee> findByDepartment(Department department); List<Employee> findByNameOrDepartment(Stirng name, Department ...);}

Page 12: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다
Page 13: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

Entity

● @Entity로 선언● Annotation으로 Entity간 relation을 설정한

다.

Page 14: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

코드로 말해요

springmvcjpa 프로젝트

Page 15: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

@Query

JPQL@Query("SELECT e FROM Employee a WHERE a.name = ?1")

Page 16: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

정리

Page 17: Introduce Spring Data JPA - sonegy.files.wordpress.comIntroduce Spring Data JPA 나는 SQL Hell이 싫어요. 그 ... Spring Data JPA 쉽다. 간편하다. ORM툴에 독립적이다

결론