-
[SPRING/JPA] Spring Data의 Example 활용하기 (QBE)
Spring data jpa를 사용하면 Example 이라는 객체를 이용해 데이터 조회(find, count, exist)를 할 수 있다. (Query by Example) example과 exampleMatcher라는 전략설정(?)을 이용해 해당 조건에 만족하는 데이터를 조회하는 기능이다. Example Example 정보 Example은 interface로 구현체는 TypedExample가 있다. 사용 할 객체는 제네릭로 설정되어있다. 선언 시 Example.of(객체)로 쉽게 생성이 가능하다. 기본적으로 설정되는 ExampleMatcher가 있지만, 사용자가 원할 경우 직접 생성해서 선언이 가... Read More
-
[SPRING/JPA] ID를 할당해서 save 할 때 왜 select 후에 insert를 할까?
새로운 프로젝트에서 JPA를 이용하기때문에 요즘 열심히 공부해보고 있다. mybatis만 썼던 나에게는 너무나도 헷갈리는 개념;; entity를 만들다보면 ID를 자동으로 생성할 때도 있고 직접 할당 할 때도 있다. 직접 할당 시 save를 할 때 혼란스러웠던 부분을 정리해본다. 혼란스러웠던 점 엔티티에서 ID를 직접 할당해서 사용을 했다. save 메서드를 이용하면서 너무나도 혼란스러웠던 것이 있었다. 새로운 entity를 save하는데 왜 insert 전에 select? id 자동 생성시에는 insert전에 select를 안하는데 직접 할당하면 insert전에 select를 하고있다. 왜? SA... Read More
-
[SPRING/JPA] JPA Repository가 정상적으로 DI 되지 않는 현상
오류 Description: Parameter 0 of constructor in com.my.service.MyService required a bean of type 'com.my.jpa.repository.MyRepository' that could not be found. Action: Consider defining a bean of type 'com.my.jpa.repository.MyRepository' in your configuration. entity 클래스와 repository가 생성했는데도 불구하고 데이터 주입이 되지 않는 현상이 발생했다. //entity 클래스 @Entity @... Read More
-
[SPRING/JPA] @TableGenerator로 ID 할당하기
현재 회사에서 Mybatis로 되어있는 데이터접근을 JPA로 바꾸는 작업을 하고 있다. Mybatis 이용 시 PK를 키 관리하는 테이블을 통해서 생성을 했고, JPA에서도 그 방식을 유지하기로 했다. 알아보니 여러 ID 생성 전략 중 Table은 성능이 딸린다는 단점이 있기는 한데, 현 상황에서는 여러 DBMS에서 공통적으로 쓰기 편하다는 장점이 더 커서 이 방법으로 유지했다. 기존에는 테이블에서 키를 조회하고 업데이트하는 쿼리를 직접 호출해서 PK를 생성했지만 JPA에서는 Entity객체에 어노테이션으로만으로 가능했다. 1. Key 관리 테이블 생성 간단하게 키를 관리할 테이블을 생성한다. (table... Read More
-
[SPRING] Spring boot / Freemarker 사용 시 jspTaglib 문제
Freemarker를 사용하는 애플리케이션을 Spring boot로 이관작업을 하던 중 jspTaglib을 못읽는 현상이 발생했다. <#assign st=JspTaglibs['http://www.springframework.org/security/tags']/> 여기서 st를 셋팅해주지 못하는게 문제였다. Spring boot는 jsp에 대해서 공식적으로 지원하지 않는다고 한다. 그래서 구동 시 freemarker 설정을 로드 할 때 tld 파일에 대한 정보를 로드하지 않는다. 해당 tld에 대한 정보를 config에서 입력해주면 정상적으로 실행이 된다. @Configuration publi... Read More