본문 바로가기

DataBase3

jOOQ !! (Java Object Oriented Querying) 사내에서 Query Repository로 사용하게 된 jOOQ 를 간단하게 정리해보겠습니다. jOOQ가 뭐지? Java Object Oriented Querying jOOQ는 자바 코드로 쿼리를 작성할 수 있는 데이터베이스 인터페이스 입니다. 데이터베이스 스키마에서 생성 된 클래스의 쿼리를 작성하는 내부 도메인 특정 언어를 제공하며 내부 도메인 특정 언어로 SQL을 구현하므로 임의의 복잡성을 지닌 SQL문을 형식에 맞게 구성하고 실행할 수 있습니다. 내가 생각하는 jOOQ 단점도 분명 있겠지만, 조금이나마 사용해본 후 jOOQ가 좋다고 느낀 이유는 아래와 같습니다. 쿼리를 자바로 짤 수 있다 ! Spring Boot를 사용하면서도 자바 기반의 Config가 정말 좋았습니다. QueryDSL을 접했을 때도.. 2017. 6. 27.
Hibernate - setResultTransformer 주의 (조인 테이블 row count 구하기) 주어진 상황은 1:N(nullable) 관계의 A와 B란 두 테이블을 조인하여 특정 조건을 만족하는 A의 row의 수를 구하는 것 입니다. 특정 조건은 A의 조건일 수도 있고 B의 조건일 수도 있습니다. 이런 경우 A 주체의 왼쪽 외부 조인을 사용하게 됩니다. B 테이블과 관계를 맺지 않은 A의 레코드에서도 조건을 만족할 수 있기 때문입니다. 이 쿼리는 중복된 A의 레코드를 생기게 합니다. 그래서 중복을 제거하여야 합니다! 중복을 제거하는 방법으로 많이 사용되는 Hiberante 코드는 setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)입니다. Projection으로 인한 요소버림없이 전체 데이터를 쉽게 가지고 올 수 있기 때문입니다. 그러.. 2016. 10. 5.
Window 환경에서 Aerospike 구축 프로젝트 중 윈도우 환경에서 Aerospike를 구축하여 테스트할 일이 생겨 구축 과정을 간단히 문서로 남깁니다. Aerospike docs에 워낙 잘 나와있어서 큰 어려움 없이 구축할 수 있습니다. AeroSpike란?참고 : http://jacking.tistory.com/1296 Aerospike는 리눅스 플랫폼만 지원하므로 윈도우에서 Aerospike를 사용하기 위해 VirtualBox와 같은 가상 머신이 필요합니다. 또한 Aerospike는 Vagrant Cloud를 통해 Aerospike VM을 제공하기때문에 편리한 설치를 위해 Vagrant가 필요하며, Vagrant의 사용을 위해 Git Bash가 필요합니다. * Git Bash 설치https://git-for-windows.github.i.. 2016. 3. 27.