일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쿼리사이트
- 쓰기지연sql저장소 쿼리실행순서
- 자바
- hibernate 쿼리실행 순서
- 포트앤어댑터 아키텍처
- dto매핑우선순위
- sql 테스트 사이트
- Oracle
- group by group by rollup 차이
- Java
- error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)
- sql사이트
- 오라클쿼리테스트사이트
- Stream
- Flush
- port&adapter architecture
- 컬럼명중복
- Kafka
- spring cloud stream
- JPA
- 설치없이쿼리실행
- spring kakfa
- 쿼리실행순서
- 중복컬럼dto매핑
- IntelliJ
- 쿼리테스트사이트
- ls -lgaf
- 쓰기지연저장소
- 쿼리실행사이트
- 스트림
- Today
- Total
목록에러 해결 목록 (11)
개린이 탈출기
종종 인른 사람이 개발한 프로젝트를 받아왔는데 인텔리제이가 해당 프로젝트 구조를 잘 인식하지 못할 때가 있다. 나의 경우는멀티모듈로 되어있는 java gradle 프로젝트였는데, 이 구조를 잘 인식하지 못해서애플리케이션 실행 버튼이 안생기거나 import 등이 잘 안되었다. 이 문제는 다음과 같이 해결했다.1. .idea 폴더 삭제2. .iml 파일 삭제3. New > Project From Exsisting File 로 새롭게 프로젝트 인식하기
회사 개발자 분께서 재밌고 간단한 자바 퀴즈를 내셨다.너무 재밌어서 온 세상 사람들이 알았으면 해서 짧게 글을 남긴다.문제 1. null 값의 메서드를 부를 수 있을까!?문제 코드는 다음과 같다.class MyClass { static void guessMe() { System.out.println("Did you get the right answer?"); }}public class Main { public static void main(String[] args) { MyClass myClass = null; myClass.guessMe(); // 위 코드는 실행될까요? }} 부끄럽지만 나는 NullPointer E..
스트림을 이용하여 Dto 리스트를 정렬하던 중 NullPointerException 을 마주하게 되었다. Jpa를 통해 Dto 리스트를 전달받아 자바에서 정렬처리를 하려고 했더니 NullPointerException 예외가 발생한 것이다.실제로 데이터를 확인해보니 정렬하려는 컬럼이 nullable 하였고 정렬 중 null 값을 마주하여 정상적으로 처리하지 못하고 NullPointerException 이 발생한 것 같아 보였다. 해당 상황을 재현해보자면 하단의 코드와 같다. @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Dto { private String nullableString; ..

인텔리제이에서 properties 파일을 열었을 때 다음과 같이 한글이 깨지는 현상이 발생했다. 이것저것 인코딩과 관련된 옵션을 고치다가 정답을 알아냈고 다음에 또 고생할까봐 기록을 남긴다. Settigns 창을 열어서 (단축키 : ctrl alt s )위의 Global Encoding 과 Project Encoding 의 값을 UTF-8 로 바꾸고아래 Default encoding for properties files: 를 UTF-8 로 수정해줘야 한다.그리고 하단의 Transparent native-to-ascii conversion 도 체크해줘야 한다.

프로그램 실행 중 다음과 같은 예외를 마주했다. // 예외 메시지org.springframework.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @7cb5..
개요학원에서 자바 프로그램을 만들 때는 그냥 학원에서 정해준 빌드도구를 가지고 수업시간에 사용한 build 파일들을 생각없이 복사해서 프로젝트를 만들었었다.그리고 회사에 와보니 하나의 프로젝트에 여러 개의 모듈이 존재했고, 각 모듈이 빌드 파일을 갖고 있었는데, 그 당시에는 주어진 업무를 처리하는데 급급하여 프로젝트의 구조나 Gradle 이 자바 프로젝트를 빌드하고 실행하는 과정에 대해서는 큰 관심을 줄 수 없었다.지금 약간의 시간이 남게 되어 Gradle 이 어떻게 자바 프로젝트를 읽고 빌드하고 실행하는지 그 과정을 가볍게 정리하며 공부해보고자 한다. 따로 기입하지 않은 출처는 모두 Chat GPT 에게 질문한 결과 혹은 업무를 하며 회사 선임님들이 알려주신 정보에서 나온 것이다. 가정. 모듈이 존재..
결론부터 말하자면스트림의 toList()를 사용하여 만든 컬렉션은 수정불가한 List를 반환하기 때문에 collect(Collectors.toList()) 로 코드를 수정하면 바로 해결 가능하다. 1. 문제 발생기존에 작업해 놓았던 코드를 예쁘게 다듬던 도중 다음과 같은 예외가 발생했다.java.lang.UnsupportedOperationException: null at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142) ~[na:na] at java.base/java.util.ImmutableCollections$AbstractImmutableCollection.addAll(ImmutableCollections.jav..
jpa 와 jdbcTemplate 을 함께 사용 중인데, Jpa로 엔티티를 조회해온 뒤, jdbcTemplate 으로 데이터를 수정하고 해당 값을 다시 조회하여 사용하는 과정에서 반영된 값을 db에서 다시 조회해와야만 하는 케이스가 발생했다. 예를 들어 jpa로 조회해온 A 테이블의 a1 엔티티를 수정하는데, A 테이블의 전체 개수(max 값) 를 A테이블의 serial_Number 컬럼에 저장해주어야 한다.이때, 전체 개수를 조회해오는 로직을 자바로 풀지 않고, 서브쿼리로 넣어 사용했다. 이러한 경우 다음과 같은 문제가 발생할 수 있다. 1. jpa 를 통해 a1 를 조회하면 a1은 영속성 컨텍스트에서 관리 됨 2. 이때, 조회해 온 'a1`의 `serial_Number` 의 컬럼 값을 수정하여 upd..
그동안 자바에서 코드를 짤 때, 컬렉션을 순회하면서 어떠한 작업을 하고 싶을 땐, for문을 돌리거나 스트림의 map/filter 만을 이용했다.그러다가 누군가가 peek 이라는 메서드를 사용한 것을 보았는데, 내가 평소에 map으로 처리했던 작업을 peek으로 처리하는 것 같아 보여 peek 에 대해 알아보았다.우선 peek 영단어의 뜻은 '(재빨리) 훔쳐보다' 라는 뜻이다. 자바에서 peek은 다음과 같이 구현되어있다 @Override public final Stream peek(Consumer action) { Objects.requireNonNull(action); return new StatelessOp(this, StreamShape.REFERENCE, ..
ON 절을 이용하지 않고 WHERE 절에 아우터조인 조건과 필터링 조건을 함께 걸게 되면 경우에 따라 조건 해석이 다르게 되는 것 같아 보였다. 특히나 (+) 기호의 유무에 따라 결과가 상이하게 나와서 크게 고생을 했는데, 다음 번에는 헷갈리지 않기 위해 오늘 경험한 것을 바탕으로 가볍게 메모를 남겨놓았다.결론적으로 말하자면,컬럼에 (+) 가 붙은 채로 조건이 걸린다면 아우터조인을 하기 전에 해당 테이블 컬럼으로 먼저 필터링을 한 뒤에 아우터 조인을 걸어주는 것이고,컬럼에 (+) 가 붙지 않은 채로 조건이 걸린다면 아우터 조인을 한 뒤에 해당 테이블 컬럼으로 필터링이 되는 것 같다. 예를 들어보면 다음과 같다. COMPANY 테이블에는 다음과 같은 데이터가 있다.EmployeeNoRegistration..