DBeaver에서 구버전의 오라클(Oracle 9.2.0.7.0) 접속 후, 좌측 database navigator에서 더블클릭으로 object 조회를 했을 때 ora-01460 오류가 발생하여 해결했던 사례.

By | 7월 26, 2021

검색을 해 보니 이 문제는 오라클 드라이버의 버전이 맞지 않아서 생기는 것이라 한다. 이 경우도 마찬가지로 드라이버가 너무 최신이어서 문제가 되었던 것. 아래와 같은 과정으로 해결이 되었다. (1) 이 훌륭한 분의 블로그 에서 호환 드라이버 버전을 확인. (2) 오라클 사의 웹페이지에서 구버전 드라이버를 찾을 수가 없어서 oracle instant client를 다운로드 받았다. (오라클 웹계정 필요) 정확히… Read More »

mariadb(아마 mysql도)의 varchar(길이) 에 대하여 잘못 알고 있었던 것 (글자 length, byte length)

By | 7월 16, 2021

오라클 하던 생각으로 막연히 varchar(길이) 안의 길이가 바이트를 나타낸다고 생각하고 있었는데, 오늘 실험 결과 글자(character)단위 길이인 것을 확인했다. mariadb 10 (utf-8) 의 varchar(10)에 한글 10자를 넣어 보니 정상적으로 들어갔다. LENGTH(입력값) = 30, CHAR_LENGTH(입력값) = 10 의 결과가 나왔다.

IntelliJ 에서 다수의 프로젝트에서 공통 프로젝트 하나를 각각 모듈로 추가하여 참조할 때 발생했던 이상 상황.

By | 7월 14, 2021

project A, project B 가 있고, commmon module용 project C가 있다고 할 때, A에서 C를 import module 하고(as maven project) 빌드까지 성공한 후, B에서 C를 import module 하면, 아까 A에서 C가 빠져버리는 현상이 있었다. 다시 A에서 C를 import module 하면, 또 B에 잘 셋팅되어 있던 C가 빠져버리는 무한 반복에 빠지게 되었는데… 삽질하다가 시도해 본 것이,… Read More »

[링크] MyBatis 1:N select 결과 매핑하는 예제 (e.g. 게시물 목록조회시 게시물당 첨부파일목록을 함께 조회하여 그룹핑, group, collection, one to many)

By | 7월 8, 2021

[Mybatis] 1:N 관계 데이터 처리 data concatenation 주의사항 resultMap > collection 을 사용할 경우 collection 의 요소가 두 개 이상일 경우(거의 그렇겠지만) 평범한 페이징으로는 오류가 날 수 밖에 없다. offset, limit 등은 그룹핑 후에 걸어야 하는데, collection의 경우 쿼리가 다 끝나고 그룹핑 되므로 그래서 나는 그냥 resultMap-collection 패턴을 포기하고 주 레코드만 select 후, select된 목록의… Read More »

[Mybatis] 동적쿼리 관련 (if, foreach, test …)

By | 7월 7, 2021

if, foreach 등 샘플코드 <if test='cateIdList != null and cateIdList.size > 0'> cate_id in (<foreach collection="cateIdList" item="cateId" separator=", ">#{cateId}</foreach>) </if> 외따옴표, 쌍따옴표에 숨겨진 의미 https://developyo.tistory.com/242

[java] 문자열 리스트(List) 중복(dup, duplicate) 체크(check)

By | 7월 5, 2021

/** * 매개변수로 받은 문자열 list에 중복이 존재할 경우 true, 아니면 false 리턴 * * @param list * @return */ public static boolean hasDuplicated(List<String> list) { if(list == null){ return false; } Set<String> set = new HashSet<>(list); if(set.size() < list.size()){ return true; } return false; } 참고 https://stackoverflow.com/questions/562894/java-detect-duplicates-in-arraylist

log4j2 에서 특정 문자열이 존재하는 로그의 행(row)을 정규식(regex)로 출력에서 제거하기

By | 6월 30, 2021

<Appenders> <Console name="console" target="SYSTEM_OUT"> … <RegexFilter regex=".*==>\s*(Preparing|Parameters).*" onMatch="DENY" onMismatch="ACCEPT"/> …. </Console> </Appenders> 위 샘플은 org.apache.ibatis.plugin.Intercepts 를 사용하여 parameter bound query log 를 출력시, 기존에 출력해 주던 쿼리 로그가 필요 없어져서 (preparing statement, parameter 등) 해당 부분을 출력에서 제외하는 예제임. <RegexFilter /> 를 하나 더 선언해 봤는데, 처음에 선언한 것만 작동하는 느낌이었음.

json 출력 혹은 swagger 문서에서 VO객체의 일부 필드(멤버) 숨기기 (Spring 4, jackson2, springfox 2.9 환경)

By | 6월 30, 2021

@ApiModelProperty(notes = "책 썸네일 atchFileId", hidden = true) @JsonIgnore private String bookThumbnailFileId; swagger의 모델 정의에서 필드 숨기기 @ApiModelProperty를 아예 필드에 붙이지 않는다. 모종의 이유로 붙였을 경우에는 @ApiModelProperty(hidden = true)를 사용한다. json response 에서 필드 숨기기 @JsonIgnore 를 사용한다. @JsonIgnore는 꼭 com.fasterxml.jackson.annotation.JsonIgnore 을 사용해야 한다. (java 패키지 확인)