반응형 Spring7 QueryDSL QClass 프로젝트 실행 단계에서 Generated 에러 Gradle 설정, Gradle 클린 > 빌드 후 QClass 생성까지 완료가 되었는데 애플리케이션 실행하면서 QClass의 Generated 어노테이션 쪽에 에러가 발생하며 cannot find symbol 에러가 발생했다. QClass가 생성되는 걸 보면 코드 생성까지는 잘 되는 것 같은데 왜 에러가 발생할까. QueryDSL의 QClass generate는 Java Compile 단계에서 이루어진다는 것을 기반으로 컴파일 설정 부분을 찾아보았다. 현재 프로젝트 자바 버전이 11인데 Java Compiler의 바이트 코드 버전은 8로 되어 있어서 버전을 맞춰주니 해결되었다. 2023. 11. 5. Querydsl - @Generated not found *javax.annotation.processing.Generated* querydsl을 세팅하는 도중 컴파일하는 과정에서 "@Genereated not found ~" 라는 오류가 발생했다. QClass 내에 annotation processing의 @Generated에서 오류가 나고 있었다. 우선 @Generated 어노테이션은 개발자가 직접 작성한 소스가 아닌 자동으로 생성된 코드를 지칭할 때 사용된다. 하루종일 구글링하면서 삽질한 방법들과 겨우 찾은 해결하는 데에 참고한 링크를 공유한다. 1. Gradle Project를 clean 시키고 다시 build 해보기 2. 인텔리제이 캐시를 지우면서 restart 해보기 3. 인텔리제이 설정 > build, Execution, Deployment > Build Tools > Gradle > Build and run 에서 사.. 2023. 3. 29. [JPA 프로그래밍] @ID 기본키 할당 전략 ( IDENTITY, SEQUENCE ) @ID 어노테이션만으로 기본키를 애플리케이션에 직접 할당하는 방법 외에 DB가 생성해 주는 값을 사용하는 방식에는 어떤 것들이 있을까. 이 글에서는 JPA가 이 문제를 해결하는 전략에 대해서 알아본다. 1. 기본 키 직접 할당 전략 (기존) 말 그대로 DB가 생성해주는 기본키가 아닌 애플리케이션에서 직접 기본키를 할당하는 방식이다. 엔티티 클래스에서 @ID 어노테이션을 통해 매핑시키고 로직에서 em.persist()로 엔티티를 저장하기 전에 애플리케이션에서 기본 키를 직접 할당해 준다. public class User { @ID @Column(name = "id") private String id; } ------------------------------------------------ Board bo.. 2023. 2. 26. [JPA 프로그래밍] 객체와 RDBMS의 패러다임 불일치, JPA의 역할 패러다임 불일치 JPA를 공부하면서 JPA의 근본적인 존재 원인, 왜 쓰는지, 지향점이 무엇인지부터 제대로 알아봐야겠다는 생각이 들어 공부하게 되었다. 객체지향 언어인 자바는 추상화, 캡슐화, 상속, 다형성 등을 활용해 객체지향적으로 현대의 관계들을 정의하여 데이터화하고 프로그래밍한다. 이 객체화된 데이터를 개발자는 보통 관계형 데이터베이스(RDBMS)에 적재하여 조회하고 관리하게 되는데 이 RDBMS는 객체지향에서의 추상화, 상속, 다형성과 같은 개념은 존재하지 않는다. 이처럼 객체와 RDBMS는 지향하는 목적이 서로 다르기 때문에 기능과 표현하는 방법에서 차이가 나는데 이걸 둘 사이의 패러다임 불일치 문제라고 한다. JPA의 역할 그럼 이 패러다임 불일치 문제를 효율적으로 해결하는 것이 곧 개발자의 .. 2022. 11. 11. Spring & Spring-Boot의 개념과 특징 Spring의 개념 Spring은 간단히 설명하자면 Java, Kotlin을 기반으로 한 웹 프레임워크이다. 국내와 해외의 많은 서비스들이 이 Spring을 통해 만들어졌고 만들어지고 있다. Spring은 애플리케이션 객체의 생명주기와 그에 대한 설정을 관리한다는 점에서 일종의 컨테이너(Container)라고도 할 수 있다. Spring MVC라고 불리는 Model, View, Controller 패턴을 사용하고 있고 DispatcherServlet이 Controller 역할을 하면서 들어오는 request를 적절한 service에 매칭 시켜주며 그에 대한 response를 View로 출력한다. Spring에서는 몇 가지 특징들이 있다. Spring의 특징 POJO ( Plain Old Java Obje.. 2022. 11. 8. JPA 주요 연관 관계 (단방향&양방향, 주인, 다대일, 일대다) JPA는 객체 간의 관계형 데이터 테이블을 매핑하기 전에 그 관계를 이해하는 것이 중요하겠다. 연관관계는 해당 비즈니스 모델에 가장 적절한 관계를 설정해주어야 할 것이고 그걸 정하는 것이 개발자의 중요한 역량일 것이다. 연관 관계 정의의 규칙들 방향 : 단방향, 양방향 관계의 주인 : 양방향일 경우 관리의 주체 다중성 : 다대일(N:1), 다대다(N:M) 일대일(1:1), 일대다(1:N) 기본적으로 데이터 테이블은 외래 키 하나로 양 쪽 테이블 조인이 가능하기 때문에 방향을 굳이 나눌 필요는 없다. 그러나 객체는 참조용 필드가 있는 객체만 다른 객체를 참조할 수 있기 때문에 2개의 객체 중 하나의 객체만 참조용 필드를 갖는다면 단방향, 서로의 2개 객체 모두가 참조용 필드를 갖고 있으면 양방향 관계라고 .. 2022. 10. 15. 이전 1 2 다음