전체 글

전체 글

    [JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자.

    [JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자.

    에러 발생한 에러는 다음과 같습니다. Caused by: java.lang.IllegalStateException: Operator SIMPLE_PROPERTY on imageId requires a scalar argument, found class {클래스명} in method {메서드명}({메서드의 인자 path}). failed to creqte query ~~ 라고 하며 위와 같이 문제되는 메서드를 친절히 알려주는데, 해당 메서드가 쿼리를 만들어내지 못한다는 의미로 해석할 수 있습니다. 바로 아래 deleteAllByImageId() 메서드가 문제입니다. @Repository public interface ImageRepository extends JpaRepository { // 생략 void..

    [HackerRank] SQL 문제

    [HackerRank] SQL 문제

    The STATION table is described as follows: 문제 1. weather-observation-station-3 link Query a list of CITY names from STATION for cities that have an even ID number. Print the results in any order, but exclude duplicates from the answer. where LAT_N is the northern latitude and LONG_W is the western longitude. 풀이 중복되지 않는 결과를 output하기 위해서는 SELECT 뒤에 DISTINCT를 붙입니다. SELECT DISTINCT CITY FROM STATION..

    [JAVA] baekjoon 2447 별 찍기-10

    [JAVA] baekjoon 2447 별 찍기-10

    문제 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 이 문제는 재귀로 생각하는 것도 어려웠지만 공백과 별 찍는 것을 어떻게 채워나가야할지 규칙을 찾는 것이 힘들었다. 이해한 것을 기반으로 글을 작성해보려한다. 나의 풀이 입력으로 받는 N은 3의 거듭제곱(3, 9, 27, 81..)인데, 재귀적으로 패턴이 존재한다고 한다. 바로 아래와 같이 가운데 공간이 비어있는 패턴이다. *** * * *** 키워서 9X9인 크기로..

    [JAVA] baekjoon 1891 사분면

    문제 https://www.acmicpc.net/problem/1891 1891번: 사분면 첫 줄에 이동시키려는 사분면 조각 번호의 자릿수를 나타내는 정수 d와, 그 사분면 조각의 번호가 주어진다. (1 ≤ d ≤ 50) 둘째 줄에는 이동의 내용을 나타내는 두 정수가 x, y가 주어진다. (|x|, |y| www.acmicpc.net 나의 풀이 1. 주어진 사분면 정보를 기반으로 위치 (row, column) 찾는다. 2. 찾은 위치를 이동시키고 범위를 확인한다. - 범위가 벗어나면 -1을 출력하고 종료한다. 3. 이동한 위치의 사분면을 찾는다. 코드 뜯어보기 초기화 및 입력을 받는 코드입니다. 저는 변수 d를 이용해서 한 변의 길이를 의미하는 size 변수를 미리 할당해놓았습니다. d는 최대 50까지 ..

    [ORM] 상속 관계 매핑

    객체 지향 언어에서는 '상속' 관계가 존재합니다. 그러나 관계형 데이터베이스에는 상속이라는 개념이 없는데요, 그래도 가장 유사한 관계가 '슈퍼타입 서브타입 관계'라는 모델링 기법입니다. 그리고 이 '슈퍼타입 서브 타입 관계'라는 논리적 모델을 실제 물리 모델(테이블)로 구현할 때는 3가지 방법이 있습니다. 1. 각각의 테이블로 변환시키고 조인하는 방법 JPA에서는 '조인 전략' (Joined)이라고 부릅니다. 구체적으로 엔티티 각각을 테이블로 모두 만들고 부모 테이블의 기본키를 받아서 이를 기본키이자 외래키로 사용합니다. 그래서 조회할 때 조인을 자주 사용합니다. 주의할 점은 객체는 타입으로 하위 객체들을 구분할 수 있지만 테이블은 타입의 개념이 없으므로 따로 구분하는 컬럼을 부모 테이블에 추가해야합니다..

    [ORM] 연관관계의 주인을 정해야하는 이유

    추후 업데이트될 수 있는 포스팅입니다. Spring Boot에서 간단한 도메인을 만들다가 작성하는 포스팅입니다. 현재 데이터베이스로 관계형 데이터베이스를 쓰기 때문에 이를 객체와 매핑시키기 위해 JAVA 진영의 ORM 기술 표준인 JPA를 사용합니다. 객체가 연관관계를 다루는 방법과 테이블이 연관관계를 다루는 방법에는 차이가 있습니다. 객체는 객체의 주소를 참조해서 연관관계를 맺습니다. 그래서 도메인 A에서 도메인 B의 객체 주소를 참조하면, 도메인 A를 조회 시 B를 함께 조회할 수 있지만, B에서는 A의 존재를 모릅니다. 이는 다시 말해 단방향의 연관관계를 맺는 것이라 말할 수 있습니다. 각 필드를 참조하고 JPA가 연관관계를 맺은 것을 알 수 있도록 애너테이션을 붙여야합니다. 일대다 관계의 경우, ..