프로그래밍94 [Java] Atomic Integer에 대하여. 스프링 자바 인 액션을 공부하는 과정에서 테스트 코드를 작성해 검증해야할 로직을 작성하게 되었다. *** 문제 그 과정에서 스트림안에 람다식을 넣어 각 element를 순회하여 이전의 리스트와 값을 비교하는 로직이었는데, index++코드가 컴파일 오류가 나 실행할 수 없는 문제가 발생하였다. int index = 0; dishNames.parallelStream().forEach(dishname -> { Assertions.assertThat(menu.get(index++).getName()).isEqualTo(dishname); //dishNames를 순회하면서 이름을 }); 컴파일 오류가 발생한 코드이다. *** 문제 인식 및 해결방법 모색 처음에는 스트림과 관련된 오류인 줄 알았지만, 알고보니 람.. 2022. 8. 28. [ModernJavaInAction] 4장 스트림(Stream) 이 글은 모던 자바 인 액션이라는 책을 읽고 스스로 내용을 정리하여 작성 한 글입니다. 모든 실습 코드는 아래 주소에 있습니다. https://github.com/jojojojocho/mordernjavainaction GitHub - jojojojocho/mordernjavainaction: 모던자바인액션 연습코드 모던자바인액션 연습코드. Contribute to jojojojocho/mordernjavainaction development by creating an account on GitHub. github.com 안녕하세요. 오늘은 스트림에 대해서 알아보고자 합니다. 스트림은 JAVA 8 부터 API에 새로 추가된 기능입니다. JAVA 8 컬렉션에는 스트림을 반환하는 Stream() 메서드가 있.. 2022. 8. 22. [error] UnknownFormatConversionException: Conversion = '0' 오류 정말 간단한 오류 였다. integer 타입을 string type으로 변환하면서 자릿수에 맞게 앞에 0을 넣어주기 위해 아래와 같은 코드를 작성하였다. String.format("%05",list.size()); 근데 오잉? d를 빠트렸다. String.format("%05d",list.size()) 오류가 해결되었다. 2022. 8. 12. [error] dangling quantifier '+' error in java 프로젝트를 하다 문자열을 슬라이싱해서 사용해야 할 일이 생겨 String의 split 메소드를 이용하여 문자열을 나누는 작업을 진행하였다. 그러나 "+"를 바로 split()안에 delimiter로 넣어버리면 +를 문자열로 인식하지 않고 제목과 같은 오류가 발생하였다. 해결법은 +앞에 역슬래시를 2개 넣어주면 오류는 해결된다. 2022. 8. 11. [JDBC Template] JDBC Template query()와 queryForObject() 프로젝트를 진행하다가 JDBC Template을 이용해야 하는 일이 생겼다. 평소에 JDBC Template은 사용하지 않았던 터라 모든 것이 낯설었지만, 그래봤자 CRUD 아니겠는가.... 배우면서 진행하였다. 그 중에서도 오늘 비슷하면서도 다른 query()와 queryForObject()에 대해 기록해 두려한다. 1. queryForObject (String sql, new RowMapper,?에 넣어줄 파라미터) - 단건 조회 시 사용 2. query(String sql, new RowMapper, ?에 넣어줄 파라미터) - 복수건 조회 시 사용 2개의 메서드를 살펴보면 메서드명만 다를 뿐 넣어주는 변수도 모두 동일하고, 비슷한 점이 많다. 정리 일단 모두 db select가 필요할 때 사용하게 .. 2022. 8. 9. [JPA] JPA 복합키 매핑 정리 JPA 프로젝트를 하다가 복합키를 매핑해야하는 일이 생겼다. 근데 이 복합키는 간단한 2개의 필드에 선언하는 것이 아닌, 연관관계에 맞물려 있는 필드 였고, 이 문제를 해결하기 위해서 JPA 복합키에 대한 내용을 구글에 검색하던 중 어떤 사람은 @Id 와 @MapsId를 같이 사용하고, 어떤 사람은 각각 @Id 만을 사용하는 예제를 보았고, 어떤사람은 extends Serialize를 엔티티와 엔티티 id클래스에 모두 적용하는 사람이 있었고, entitiy Id 클래스에만 적용하는 사람이 있었다. 그래서 복합키 매핑을 할 때 어떤 것이 맞는지, 또는 어떤 방법으로 해야하는지 혼란이 왔다. 그러다 어떠한 글을 보고 깨달음을 얻어 이렇게 정리한 내용을 남기려고한다. 일단 복합키를 선언하기 위한 조건들이 4가.. 2022. 8. 9. [error] javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call 오류 JPA querydsl 강의를 진행하면서 test코드를 작성해야 하는 부분이 있었다. 분명 강사님과 같은 코드를 짰는데 나는 제목과 같은 오류가 발생했다. 구글링을 통해 원인을 찾아보니 JPA 자체는 트랜잭션을 기반으로 작동하기 때문에 발생하는 오류였다. 트랜잭션이 유지되는 동안에는 영속성 콘텍스트라고 불리우는 1차 캐시에 엔티티정보가 저장되는데, 트랜잭션이 선언되지 않아 Persist가 진행이 안되는 것 이었던 것 같다. 아무튼 테스트 코드에 @Transactional을 추가해주었더니 바로 해결이 되었다. 2022. 7. 27. [JPA] 연관관계 매핑[실무] JPA를 사용하는 프로젝트에서 연관관계 매핑을 해야하는 일이 생겼다. JPA강의를 들을 때만해도 굉장히 쉬웠고, 포트폴리오를 작성할 때도 간단하게 넘어갔던 부분이었는데, 그새 다 까먹은건지 실무에 와서 조금 삽질을 한 것 같아 나중을 위해 적어두고 계속해서 수정해나가고자 한다. 1. 연관관계 매핑 1:N 이번 프로젝트에서 1:N 관계로 진행되는 경우가 많았고, 또 양방향으로 할지 단방향으로 할지 굉장히 혼란스러웠다. 삽질없이 단순 심플하게 진행하고 싶다면 단방향 관계로 진행할 것을 추천한다. 단방향관계는 굉장히 쉽다. FK를 가지고 있는 연관관계의 주인 필드에 @ManyToOne과 @JoinColumn을 설정해주면 된다. 양방향 관계는 별로 추천하지 않는다. 그래도 굳이 넣어야한다고 한다면 컬렉션내부에는.. 2022. 7. 26. [JPA] JPA로 다른 스키마에 있는 테이블에 쿼리 날리기(with mysql) JPA를 이용한 프로젝트를 진행하면서 외부에 있는 테이블에서 데이터를 조회하거나 외부테이블과 내부테이블을 같이 조인하여 데이터를 조회해야 하는 경우가 생겼다. 모든 경우가 이 방법으로 해결 되지 않겠지만, 매우 간단한 방법으로 다른 스키마에 있는 테이블에 있는 데이터를 조회할 수 있는 방법을 소개해보고자 한다. 1. @Table 의 기능을 이용하면 굉장히 간단하게 다른 스키마에 있는 데이터를 조회하거나 수정할 수 있다. 바로바로~~~ @Table( catalog = "`외부스키마명`") 이것이다. 꼭 " " 큰따옴표 안에 백틱을 넣어줘야 한다. 백틱을 넣어주지 않는 다면 mysql 문법이 맞지 않아 조회가 되지 않는다. 위의 @Table 설정을 자기가 조회하고자하는 외부 테이블의 엔티티에 선언해주고 조회.. 2022. 7. 25. 이전 1 ··· 5 6 7 8 9 10 11 다음