"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 이 책으로 디자인패턴을 공부를 처음 시작했는데 가장 좋았던 점은 어떤 패턴인지 직관적으로 설명하는 것이 가장 좋았습니다. 마치 패턴과 내가 대화를 하는듯한 느낌을 주는 느낌을 받았습니다. 이건 여담인데 제가 회사 면접때 디자인 패턴을 공부한적이 있다고 했고 특정 패턴에 대해 설명한적이 있었습니다. 그때 설명한 패턴이 어뎁터 패턴..
Spring data JPA에서는 많은 확장 기능을 제공하고 있다. 사용자 정의 리포지토리 구현 (잡 글) 일반적으로 Spring data JPA에서는 public interface MemberRepository extends JpaRepository {} 인터페이스를 통해서 JPA를 사용하고 있다. 근데 마이바티스 나 네이티브 쿼리를 사용하는 경우 위 인터페이스는 의미가 없어진다. 왜냐하면, JPA에서 이들을 관리할 수 없기 때문이다. 결국 이들을 사용할때 엔티티와 테이블간의..
페이징 기능 JPA에서 페이징을 할려면, public List findByUsernameAndAgeGraterThen(String username, int age) { return em.createQuery("select m from Member m where m.userName =:username and m.age >:age") .setFirstResult(1) .setMaxResults(10) .getResultList(); } 이런식으로 first와 max를 지정해야 할 수 있다. 코드 상에서는 하드코딩으로 박아두고 있지만, 이것을 밖으로 빼면 될거다. 근데 문제 가 있다. 그건..
springData에서는 인테페이스를 통해서 쿼리를 작성한다. public interface MemberRepository extends JpaRepository { } 이상하다. 분명히 아무것도 없는데 이렇게만해도 기본적인 insert라던지 delete update가 전부 된다. (update같은 경우는 jpa의 특별한 방법을 사용하고 있다.) @Override public List findAll() { return getQuery(null, Sort.unsorted()).getResultList(); } 요런식으로 미리 구현되어 있다. 그래서 비슷..
인터페이스는 과연 무엇일까? interface?? 초기의 인터페이스는 void test(); 요런식으로 구현체가 없는 상태로 존재하였다. 그래서 인터페이스를 implements을 하게되면, 구현체가 반드시 필요하였습니다. 하지만 자바8부터 인터페이스에도 구현체를 작성할 수 있게 되었다. 구현체를 작성하는 방법은 총 3가지다. 1. static 2. default 3. private 원래 언제 만들어졌는지 적으려 했지만 귀찮은 관계로 넘어가자. 아무튼 이 3..