본문 바로가기

전체 글

단일테이블의 Tree 구조를 위한 Self Join Oracle의 tree 구조 start with/connect by 형태와 동일하게 구현하고자 할 경우, JPA도 Self Releastion으로 처리할 수 있다. 가령 ForumCategory Entity가 존재한다면 다음과 같이 처리된다. public class ForumCategory { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private Long id; @Where(clause = "deleted='N'") @ManyToOne(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY) @JoinColumn(name = "parentId") private ForumCa.. 더보기
Mint(Ubuntu 14.04) Gradle Version Mint(Ubuntu 14.04) 버전에서 바로 gradle 설치시(apt-get install gradle) 구 저장소를 보고 있으므로 gradle 1.4가 설치된다. 이경우 STS등에서 진행한 프로젝트의 경우 아래와 같이 버전 문제가 발생한다. org.gradle.api.tasks.TaskContainer.create(Ljava/lang/String;Ljava/lang/Class;)Lorg/gradle/api/Task; 설치된 gradle을 지우고 2.x대로 설치하자.https://launchpad.net/~cwchien/+archive/ubuntu/gradle$ sudo apt-get --purge remove gradle $ sudo add-apt-repository ppa:cwchien/grad.. 더보기
JPA - 필드에 Trim 적용하기 두가지의 방법이 있다. 첫번째는 JBoss-Hibernate에서 제공되는 @ColumnTransformer를 사용하는 방법과 Listener를 적용하는 방법. DB에 종속적인 모델이지만, 개인적으로는 첫번째 방법인 ColumnTransformer를 추천한다. ColumnTransformer를 적용하는 방법. .. @ColumnTransformer(write="trim(?)") @Column(name = "title", nullable = false) private String title;.. TrimListener를 만들어 적용하는 방법 @Trim Annotaion을 지정한다고 보면, Annotaion의 적용 대상은 method나 field일 것이다. 그러니 @interface의 적용 대상을 field,.. 더보기
guava의 Iterables.isEmpty java null.. lib들을 사용하다보면 어떤 놈들은 null처리가 되어 있는 놈들이 있는가 하면, 그냥 null exception 을 내뱉는 놈들도 있다. 가령 guava의 Iterables.isEmpty(Iterable..)를 무심결에 썼는데 nullpointerexception 을 내뱉에 버린다. /** * Determines if the given iterable contains no elements. * * There is no precise {@link Iterator} equivalent to this method, since * one can only ask an iterator whether it has any elements remaining * (which one does usin.. 더보기
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.. 더보기