본문 바로가기

Programming!

spring data jpa의 @Query nativeQuery의 IN 절 처리. 오늘 좀 시간을 보낸 문제- 기존 jpa의 sql이 복작도가 증가함에 따라 nativeQuery를 사용하게 됨.- IN 절을 기존과 같이 o.enumTypes in :enumTypes 를 그대로 사용해서 @Param으로 넘김 이때 @Param의 List는 enum클래스임 List- 일반 jpql이였을 경우는 결과가 잘나옴. - 그러나 nativeQuery로 변경 후에는 결과가 나오지 않음. 에러 없음.- 원인은 nativeQuery사용시에는 IN절에 들어가는 Param List에는 String, Long 과 같은 타입만 허용됨. .... and fvd.vendorDivisionType in :vendorDivisionTypes ... - 수정전 List findByXXXXXX(@Param("vendorD.. 더보기
Mint/Ubuntu 에서 기본 java 변경. 민트든 뭐든.. 우선 mint linux 기본 설치를 하면, openjdk가 설치되어 있다.(java -version) ~/.profile이나 ~/.bashrc 에서 JAVA_HOME과 PATH를 지정해도 프롬프트에서 java -version을 실행하면 openjdk가 나오는데 update-alternatives 를 이용해서 변경할 수 있다. 우선, 직접 설치한 java path를 등록해야 한다. sudo update-alternatives --install "/usr/bin/java" "java" "JAVA설치위치/bin/java" 1 --> 1은 우선순위 이후, 등록되어 있는 JAVA를 변경해주면 된다.sudo update-alternatives --config java 선택 경로 우선순위 상태 --.. 더보기
JPA 리스너를 만들어 보자. 지난번 spring-data-jpa의 기본 리스너에 대한 소개. 이번에는 커스텀 리스너를 만들어보자.참고 : http://alexandregama.org/2014/03/23/entity-listeners-and-callback-methods-jpa/ 만들어볼 리스너는 Trim Listener 각 Entity에 @Trim 어노테이션을 사용해서 호출시 trim이 자동으로 되도록 처리한다. 더보기
Spring Data JPA + Hibernate / Auditing @EnableJpaAuditing 는 Entity에 있어서 기본적으로 포함되는 createdAt, modifiedAt, createdBy, modifiedBy등을 자동으로 주입시킬 수있도록 해주는 설정이다. @EnableJpaAuditing@EnableJpaRepositoriespublic class MyDictionaryApplication extends WebMvcConfigurerAdapter } 기본적으로 Auditing을 적용하기 위해서는 아래처럼 Entity에 @EntityListeners Annotation을 추가하고 기본 제공되는 AuditingEntityListener를 지정한다. @Data@Entity@EntityListeners(value = { AuditingEntityListene.. 더보기
Hibernate 4.x -> Hibernate 5.x 변경시 유의 사항. 그동안 JPA ( MySQL + Hibernate 4.x ) 환경에서 무난하게 개발중이던 환경에서 Hibernate를 5.0.x로 업데이트를 단행했다. 이후, entity 저장시 오류가 나기 시작했는데..hibernate_sequence에 어쩌고 저쩌고, Caused by: org.hibernate.id.IdentifierGenerationException: could not read a hi value - you need to populate the table: hibernate_sequence 대충 찾아보니 @GeneratedValue(strategy = GenerationType.AUTO) 로 ID를 지정 했을 경우 이전 버전과는 다르게 시퀀스 테이블에서 읽어 오도록 변경된듯 하다. 여튼 @Gene.. 더보기