728x90 반응형 JPA7 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. [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. [JAVA] JPA 활용법 -2 (QueryDSL 활용해보기) https://samori.tistory.com/52 [JAVA] JPA 활용법 -1 (QueryDSL 적용해보기) QueryDSL이란? Spring Boot Data JPA 는 쿼리문을 직접 짜지 않아도 함수명만 알맞게 적어주면 쿼리를 자동으로 짜주는 ORM으로 유명한데 사실상 조금만 복잡하고 동적인 쿼리를 짜려고만 해도 JPQL등을 samori.tistory.com 지난 글에 이어 오늘은 QueryDsl을 활용해서 기본적인 조회와 수정을 진행해보려고 한다. 첫번 째로 구현하려고 하는 로직은 사용자가 입력한 값을 토대로 DB에 접속하여 일치하는 데이터를 조회하는 작업이다. JPA 기준으로 DTO를 설정해주고 예시 @Getter @Setter @Entity @Table(name = "테이블명") publ.. 2022. 12. 6. [Spring Boot] 대소문자 구분 없이 검색하는 로직 (JPA + Oracle) https://samori.tistory.com/40 [Spring Boot] 세상 쉬운 검색창(검색 로직) 만들기 1-2 (백 로직) 샘플 Entity는 Staff로 정하고 설명을 위해 제공 @Getter @Entity @NoArgsConstructor public class Staff { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; pr.. samori.tistory.com 위 글에 이어 Spring Data Jpa 와 Oracle 사용시 대소문자 구분없이 검색하는 로직을 어떻게 처리해야할지와 로직은 알겠는데 네이티브 쿼리에서 매개변수를 인식하지 못하는 현상을 어떻게 해결했는지 .. 2022. 10. 14. [Spring Boot] 세상 쉬운 검색창(검색 로직) 만들기 1-2 (백 로직) 샘플 Entity는 Staff로 정하고 설명을 위해 제공 @Getter @Entity @NoArgsConstructor public class Staff { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; } Controller @Controller public class StaffController { private final StaffService staffService; public StaffController(StaffService staffService) { this.staffService = staffService; } @GetMappin.. 2022. 9. 24. MyBatis vs JPA 기본 배경: MVC패턴을 안다면 MODEL이 DB에 접속하는 것 또한 알 것이다. 그렇다면 DB에 접속하기 위해서는 뭐가 필요할까? 바로 JDBC이다. JAVA로 DB에 CONNECT 하겠다는 것이다. 그렇다면 이 JDBC를 사용하면 되지 왜 MyBatis 나 JPA같은걸 쓰는걸까? 이유는 간단하다. JDBC가 귀찮고 복잡하기 때문이다. 그래서 개발자들끼리 이 귀찮고 복잡하고 어려운 JDBC를 조금 더 쉽게 사용할 수 있는 방법이 없을까? 매번 고생하지 말고 JDBC 형식을 미리 만들어놓고 새 프로젝트를 할 때는 그 형식에 값만 넣으면 어떨까? 해서 나온 것이 MyBatis다. MyBatis 를 통해 초반에 좀 번거럽지만 설정파일과 매퍼를 만들어 놓고 경로 설정을 해두면 그 매퍼에 형식에 맞춰서 쿼리문만.. 2022. 8. 26. 이전 1 다음 728x90 반응형