728x90 반응형 querydsl9 JPA의 Persistence와 @Transient 이해하기 (feat. EL1008E) : EL1008E: Property or field '문제의 칼럼' cannot be found on ........ - maybe not public or not valid? Transient "일시적인" Temporary의 동의어 JPA에서 언급하는 Persistence "영속성"과 반대되는 개념이다. 영속성이란 사라지지 않는 데이터의 특성이다. 영속성을 갖지 않으면 데이터는 메모리에서만 존재하게 되고 프로그램이 종료되면 모두 사라지게 된다. 우리는 이렇게 영속성을 가져야 하는 데이터를 DB에 저장한다. 그러면 일시적인의 의미를 갖고 있는 저 Transient를 어노테이션으로 썼다는 것은 무엇일까? 메모리에서만 존재해야 하는, 프로그램이 종료되면 사라져도 무방한 목적의 칼럼이라고 볼 수 있다. 예컨데.. 2024. 4. 5. QueryDSL 다른 조건으로 같은 테이블 여러번 조인하기 QueryDSL을 사용할줄 안다는 가정하에 Repository 구현체에 QClass를 조건의 수만큼 선언하고 선언한 그 QClass의 인스턴스 변수를 가져와 사용하는 것이다. 아래는 조회 예시이다. Q클래스이름 조건1 = new Q클래스이름("조건1"); Q클래스이름 조건2 = new Q클래스이름("조건2"); 조건1과 조건2를 선언했다면 조회를 위해 select에 포함시켜준다. 조건1.원하는칼럼.as("가명"), *여기서 중요한 것은 조건1은 기존 테이블이 아니기 때문에 가명을 써줘야 한다. 이 가명을 통해 앞단에서 select를 해올 수 있다. 예를 들어 테이블1과 공통 테이블2가 있다고 가정해보자. 공통 테이블2의 원하는 칼럼을 테이블1의 칼럼에 삽입하기 위해서 테이블1의 칼럼을 가명으로 선언하는 .. 2024. 4. 5. QueryDsl - Case When과 Concat 활용법 CASE WHEN QueryDsl에서 동적쿼리를 사용하고 싶을 때, Decode를 사용하고 싶을 때 활용되는 Case When은 크게 두가지로 사용할 수 있다. 1. CaseBuilder를 직접 넣는 방법 .select(Projections.bean(Member.class, member.name, new CaseBuilder() .when(member.age.lt(10)).then("어린이") .when(member.age.lt(20)).then("학생") .when(member.age.lt(30)).then("청년") .otherwise("어른") .fetch(); 2. CaseBuilder를 임의의 변수로 선언한 뒤 변수를 넣는 방법 Expression caseByAge = new CaseBuilde.. 2023. 4. 11. QueryDsl 에서는 Null 처리를 어떻게 하나요? Coalesce Query를 직접 쓴다면 뭐 DBMS에 따라 문법이 조금 다르겠지만 오라클의 경우 NVL이 바로 떠오르텐데 QueryDsl에서는 NVL이나 IF NULL 대신 Coalesce를 쓴다. 단순한 조회 시 문법은 아래와 같다. .select( QueryDsl 전용 엔티티(dto)의 참조변수.칼럼명.coalesce("NULL일시 표출하고 싶은 메세지").as("가명") ) .from(QueryDsl 전용 엔티티(dto)의 참조변수) .fetch(); 위 문법의 예시는 아래와 같다. .select( codeDto.codeName.coalesce("아무것도 없네요").as("codeName") ) .from(codeDto) .fetch(); 여기서 포인트는 as 로 가명을 지정해두는 것인데 가명을 .. 2023. 4. 10. 날짜/달력 API를 사용해서 기간으로 조회/검색하기 (쉬움) https://www.daterangepicker.com/ Date Range Picker — JavaScript Date & Time Picker Library Originally created for reports at Improvely, the Date Range Picker can be attached to any webpage element to pop up two calendars for selecting dates, times, or predefined ranges like "Last 30 Days". To get started, include jQuery, Moment.js and Date Range www.daterangepicker.com 기술스택 자바 17 스프링부트 JPA + Que.. 2023. 1. 10. Querydsl + Spring 3.0 + Java17 업데이트 내용! [Maven+Gradle] Maven을 사용하고 QueryDSL을 사용했다면 기존 아래와 같이 사용했던 apt-maven-plugin 설정이 있을 것이다. com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor 하지만 스프링 3 버전, Java 17버전 이후로부터 javax가 jakarta로 넘어가면서 위와 같은 Plugin은 deprecated 되고 말았다. 해서 이제는 아래와 같이 classifier를 직접 추가해줘야 하고 플러그인은 일절 사용하지 않는다. 아래 GitHub QueryDSL 공식페이지에 어떤 사용자가 질문한 내용에 대한 답변을 참고하였다. 즉, pom.. 2022. 12. 20. [JAVA] JPA 활용법 -3 (QueryDSL 활용해보기) + 기본 문법 https://samori.tistory.com/58 [JAVA] JPA 활용법 -2 (QueryDSL 활용해보기) https://samori.tistory.com/52 [JAVA] JPA 활용법 -1 (QueryDSL 적용해보기) QueryDSL이란? Spring Boot Data JPA 는 쿼리문을 직접 짜지 않아도 함수명만 알맞게 적어주면 쿼리를 자동으로 짜주는 ORM으로 유명한데 사 samori.tistory.com 지난 글에 이어 오늘은 QueryDsl을 활용해서 기본적인 생성과 삭제를 진행해보려고 한다. 지난 글에도 언급했지만 QueryDSL은 INSERT를 자체적으로 제공하고 있지 않아서 EntityManager을 이용해야 한다. VIEW단에서 Controller에 Form을 통해 값을 전달.. 2022. 12. 9. 이전 1 2 다음 728x90 반응형