분류 전체보기510 Springboot테스트 중 Bean 을 찾을 수 없을 때 에러내용 스프링부트 테스트 중 @AutoWired 시 Bean을 찾을 수 없는 에러 발생 에러원인 패키지 위치가 원인이었다. 왜 이렇게 패키지를 생성했는지.. 실수였다. SpringTxApplication 과 같은 패키지 안에 있어야 Bean 을 찾을 수 있다. 에러조치 propagation 폴더를 springTx 패키지 하위로 이동했다. 2022. 9. 28. 운영체제 - 4.CPU 스케줄링 알고리즘 보호되어 있는 글 입니다. 2022. 9. 27. JPQL - Query타입, 결과조회, 파라미터, 프로젝션, 페이징, 조인 JPQL( Java Persistence Query Language ) JPQL 은 객체지향 쿼리 언어로, 테이블이 대상으로 하는 것이 아닌, 엔티티 객체를 대상으로 쿼리한다 JPQL 은 작성하고 실행하면 SQL 로 변환된다. Member 은 엔티티이다. Member m 처럼 별칭은 필수이다. String jpql = "select m From Member m where m.name like ‘%hello%'"; TypeQuery : 반환 타입이 명확할 때 사용한다. 아래의 코드는 Member.class 로 반환타입이 명확하다. TypedQuery query = em.createQuery("SELECT m FROM Member m", Member.class); Query : 반환 타입이 명확하지 않을때 .. 2022. 9. 27. 즉시로딩 지연로딩 즉시로딩과 지연로딩에 관련해서, JPA 강의에서는 프록시와 마찬가지로 첫 시작을 아래와같은 질문으로 시작한다. Member를 조회할때 Team을 함꼐 조회해야할까? 비즈니스 로직에 따라 다르겠지만, 보통은 항상 함께 조회하지 않고 필요할때만 조회하기를 원할 거라 생각한다. 이 주제의 핵심은, 즉시로딩을 사용하지 않는다 라고 정리할 수 있다 왜 사용하지 않을지 알아보자. - 가급적 지연로딩만 사용하기 - 즉시 로딩을 적용하면 예상하지 못한 SQL이 발생한다. - 즉시 로딩은 JPQL 에서 N + 1 문제를 일으킨다. * 연관 관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n) 만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오는 현상 + 아주아주 간단한 프로젝트에서는 즉시로딩을 사용해도.. 2022. 9. 27. JPA 프록시 지연로딩을 이해 하기 위해서는 프록시에 대해 이해해야 쉽게 다가갈 수 있다. 강의에서는 시작을 해당 질문으로 시작한다. " Member 엔티티를 조회할 때 Team 도 함께 조회해야 할까 ? " 해당 질문에 대한 답은 정해져있지 않다. 실제로 비즈니스 로직이 Member 엔티티를 조회할 때 꼭 Team 을 필요로 해야할 수도 있기 때문이다. 하지만, 보통은 같이 사용하지 않는 것이 일반적이다. - 비즈니스 로직에 꼭 필요하지 않다면 Team을 같이 조회할 필요가 없다. - 쿼리 등 낭비가 발생한다. - 해당 낭비를 줄이기 위해, 지연로딩과 프록시로 해결한다. JPA 에서는 em.find () 뿐만 아니라, em.getReference() 메서드도 제공하고 있다. em.find는 DB 를 통해서 실제 엔티.. 2022. 9. 26. 운영체제 - 3.프로세스와 스레드 보호되어 있는 글 입니다. 2022. 9. 23. InvalidDataAccessResourceUsageException 에러내용 InvalidDataAccessResourceUsageException 발생 에러원인 H2 에 테이블이 잘 있는데 sql 쿼리가 안맞는지 계속 안된다고해서 구글링을 했다. 1. 테이블 생성이 안되어있다. 2. 하이버네이트에서 지정한 컬럼이 없는 것 테이블을 다시 삭제하고 쿼리문만들고 짜고 다시 생성하고 거의 한시간이 지나고 ddl-auto 를 create 로 바꿨는데 테이블이 생성이 안되서 왜 안되지 하다가 다시 자세히 보니까 test 의 properties 를 create 로 바꾸고 계속 application을 돌리고 있었다.. 그러니 될리가 없었다. main 의 properties 에서 ddl-auto : create 로 변경하니 이상없이 잘 동작했다. 에러조치 ddl-auto : creat.. 2022. 9. 23. 상속관계 매핑 ( @Inheritance , @DiscriminatorColumn ) 관계형 데이터 베이스에서는 상속 관계라는 것은 없다. 다만 슈퍼타입, 서브타입 관계라는 모델링 기법이 있으며 상속관계와 비슷하다. 아래와 같은 관계를 상속관계 매핑으로 나타내는 3가지 방법에 대해 알아보자. 상속관계 매핑의 방법 3가지 매핑방법 어노테이션 설명 조인전략 @Inheritance(strategey = InheritanceType.JOINED) 각각 테이블 단일 테이블 전략 @Inheritance(strategey = InheritanceType.SINGLE_TABLE) 통합 테이블 구현 클래스마다 테이블 전략 @Inheritance(strategey = InheritanceType.TABLE_PER_CLASS) 서브 타입 테이블 1. 조인 전략 - 공통된 부분을 부모처럼 사용하며 extend.. 2022. 9. 23. 연관 관계 매핑 연관관계에서 고려해야할 점은 아래와 같다 1. 다중성 - 일대다 / 다대일 / 다대다 / 일대일 2. 방향 - 단방향 / 양방향 3. 연관 관계의 주인 다중성 - 일대다 ( 1: N ) @OnetoMany - 다대일 ( N:1 ) @ManytoOne - 다대다 ( N:M ) @ManytoMany - 일대일 ( 1:1 ) @ OnetoOne 방향 - 단방향 : 한쪽으로 가는 방향 - 양방향 : 양쪽으로 가는 방향 DB 테이블에서는 외래키(FK) 하나로 조인을 사용해서 양방향으로 쿼리가 가능하다. ** DB 에서는 방향이라는 개념이 없다 객체는 방향의 개념이 존재한다. 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있다. ?? 무조건 양방향 관계를 하면 안될까 ?? - 일반적인 비즈니스에서 엔티.. 2022. 9. 22. 이전 1 ··· 26 27 28 29 30 31 32 ··· 57 다음