Spring Framework로 개발하다 보면 Service를 도메인 기준으로 나누는 경우가 많다. 그러다 보면 Aservice에서 BService로 참조를 하게 될 경우도 있고, 반대로 BService에서 AService로 참조할 수도 있게 된다. 이런 경우에 각 서비스 클래스를 빈으로 만들면서 서로를 참조하기 때문에 다음과 같은 오류를 만나게 된다. 실무에서는 매우 복잡한 비지니스 구조를 가지고 있기 때문에, 추후에 해당 문제를 해결하기 위한 방법이 애매하게 된다. 물론 서비스의 빈생성을 @Lazy 등.. 과 같은 방법으로 지연 로딩하여 생성 순서를 정해줄 수 있지만, 여러가 서비스가 얽혀 있는 상황이라면 깔끔한 방법이 되지 못한다. 이러한 구조에서 가장 간단하게 개발할 수 있는 방법으로 @Event..
실무를 하다 보면 종종 다른 데이터베이스에 같은 이름의 테이블이 존재하게 된다. 예를 들어, A와 B 데이터베이스에 Category라는 테이블이 있고, 하나의 프로젝트에서 두 개의 엔티티를 만들어 사용할 수 있다. # 스키마가 다른 같은 이름의 테이블 create table schema_a.category ( category_seq int auto_increment primary key ); create table schema_b.category ( category_seq int auto_increment primary key ); 보통 이런 경우 테이블 명칭을 그대로 사용하여 엔티티 클래스 이름으로 사용하여 다음과 같이 사용할 수 있다. 나는 막연하게 @Table에 스키마와 테이블 명칭을 지정해두었으니..
실무를 하다 보면 일괄로 데이터를 업데이트하거나 인서트하는 작업을 자주 하게 된다. 이런 작업을 기능으로 만들 경우에 입력된 값이 수정이나 입력될 수 있는 값인지 검증하는 작업이 들어간다. 간단하게 생각해보면 클라이언트에서 입력된 값이 a, b라면 아래와 같은 쿼리로 풀 수 있을 것이다. select * from Account where Login_Id in ('a', 'b'); 하지만, 복잡한 실무에서는 단일 값으로만 검증을 취할 수 없다. 예를 들어, 회원의 아이디 이메일, 아이디, 이름으로 검증을 취해야 할 경우 위와 같은 쿼리로는 불가능하게 된다. 물론 회원의 고유 일련번호(account_seq)로 판단은 가능하겠지만, 클라이언트에서 회원의 고유 일련번호는 모르는 경우가 많을 것이다. 이럴 경우,..
보통 JPA를 활용하여 개발할 때 데이터베이스에 Y, N 여부 값을 넣을 경우에는 boolean converter를 따로 만들어서 사용하곤 한다. 하지만, 경우에 따라 버그(?)가 발생하는 경우가 있어 남긴다. CONFIG 테이블에 BooleanToYNConverter를 사용하는 칼럼이 있어, DB값이 Y라면 엔티티에는 true, 반대의 경우에는 false로 가져올 때, 해당 칼럼을 where 절로 쿼리를 select 할 때, case when 구문으로 true, false를 임의로 주면 파라미터 바인딩이 제대로 되지 않는 현상이다. 샘플 코드는 아래를 보자. @Entity @Table(name = "CONFIG") @Setter public class Config { @Id @GeneratedValue..
이전 포스팅에서 한 테이블 내에서 특정 값을 그룹핑하여 최댓값을 가진 row를 가진 방법을 보았었다. 이때 Row_Number를 사용하여 추출한 데이터가 가장 빠른 방법으로 보였는데, 이는 서브 쿼리로 해야 한다는 점이 있다. 하지만.. JPQL?hibernate?에 의해 where절과 select절에서만 서브 쿼리가 사용 가능하다고 한다..(내부적인 원리는 나중에 따로 공부해봐야겠다.) 참고 글 : https://stackoverflow.com/questions/60258377/querydsl-4-x-subqueries-in-the-from-clause QueryDSL 4.x subqueries in the FROM clause Are subqueries in the from clause support..
1. Servlet이란? - 자바를 이용해 페이지를 동적으로 생성하는 자바기반의 프로그램(?). - 웹서버가 모든 클라이언트의 요청을 받아서 처리하는데, 클라이언트의 요청이 많아짐에 따라 처리할 수 없는 한계 를 극복하기 위해 탄생. - 일명 CGI (Common Gateway Interface)라고 불림. -> CGI : 웹 서버 상에서 사용자 프로그램을 동작시키기 위한 프로그램. - HttpServlet 클래스를 상복받아 구현됨. 2. Servlet의 동작 과정 1) 클라이언트의 URL 요청. 2) HTTP 요청을 처리하기 위한 HttpServletRequest 객체 및 HttpServletResponse 객체 생성. 3) 요청된 URL을 배포서술자(DD, Deplyment Descriptor) 분석..
- Total
- Today
- Yesterday
- jwplayer
- playbackRate
- oauth
- @subselect
- Animation
- 관리자 도구
- 의미
- 예제
- beforeunload
- 장점
- @subquery
- 원리
- join subquery
- Queue
- 자바
- SDK
- playsinline
- 로그인
- map
- Multi IN Clause
- QueryDSL
- @EventListener
- list
- API
- on('seek')
- IN Clause
- login
- SET
- 특징
- 네트워크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |