Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info


JPA Repositori를 통한 일반적인 검색 기능은 앞장에서 SQL코스에서 여러가지방법으로 조회를 해보았습니다.

이번장에서는 영속성(Persistence)관점에서 을 이용한 저장/수정/삭제 즉 CRUD관점에서 살펴보도록하겠습니다기능을 살펴보겠습니다.

CRUD는 검색(읽기) 기능을 포함하고 있습니다.

Code Link :http://git.webnori.com/projects/WEBF/repos/spring_jpa/browse/src/test/java/com/example/demo/jpa/JpaCRUD.java

...

  • 단지 '@Transactional' 어노테이션을 함수에 선언함으로, 어플리케이션에서 발생하는 예외까지 트랜젝션 과정에 포함시켜, 자동 롤백을 시킬수가 있습니다.
  • 기존 SQL/SP개발 방식에서는 하나의 함수에 즉각적인 삽입과 삭제가이루어 졌을것입니다. 하지만 지연쓰기방식은 변경점을 조사하여 변경이 없는 부분은 SQL문을 수행하지 않습니다.
  • 즉 , 실제 DB에 반영하는 flush() 타임시 변경점만을 반영을 합니다. 


장점요약:

  • 어플리케이션 코드내에서 예외에 대한 트랜젝션처리가 간단해집니다트랜젝션처리를 유연하게 할수가 있습니다.
  • 변경점만 반영됨으로, 불필요한 쿼리호출을 방지할수 있으며 이것은 OOP접근만으로 작동이 가능합니다.
  • 이와같은 혼합처리를 위해 전통적인 방식에서 SP개발은 여러개의 단위 SP를 만들어야할것입니다. SQL문은 반복적으로 여러개 준비되어야할것입니다.

...

  • DB를 저장하는 새로 생긴 중간 단계에 익숙하지 못할수 있습니다.
  • 영속성을 사용하기위해 준비해야할 단계가 많으며, 어플리케이션 자체가 무거워지는것은 분명한 사실입니다.
  • 데이터중심에서 메시지중심개발로 패러다임을 변경해야하며 디테일한 메시지 처리가 필요하며 결론적으로 데이터를 단순하계 설계해야합니다.
  • 데이터를 단순하계 설계한다는것? 데이터의 군더더기를 뺀다란 의미이며 불필요한것을 빼고 동일한 기능을 보장하고 성능을 올린다는것은 훨씬 어려운 주제입니다.