본문 바로가기
반응형

개발 지식/JPA
반응형
5

[JPA] Entity Class의 @NoargsConstructor (access = AccessLevel.PROTECTED) 실무에서 JPA를 활용하다보면 Entity 생성시 @NoargsConstructor (access = AccessLevel.PROTECTED) 이라는 Annotation을 붙여서 개발을 하게 된다. 이에 조금 더 정확히 이해하고자 이번 블로그 글로 언급하고자 한다. 이 글을 읽는 분들은 모두 알다시피 Lombok 라이브러리에는 생성자 관련한 두개의 어노테이션이 존재한다. AllargsConstructor NoArgsConstructor 1. AllargsConstrutor 말 그대로 '모든 매개변수 생성자'인 것 처럼 해당 클래스 내의 모든 변수값을 가진 생성자를 자동으로 만들어 준다. @Setter @Getter @AllArgsConstructor public class testDto { private.. 2022. 2. 6.
[JPA] 프록시(Proxy)와 엔티티 연관 관계(LAZY, EAGER) 실무에서 조회기능을 메인으로 개발하고 있다보니 JPA 데이터 조회 최적화에 항상 관심을 가지고 있다. 특히 엔티티 설계시 엔티티간의 연관관계에 대해 중점적으로 설계하였고 이를 실무 개발에 적용하고자 하였다. 이에 해당 내용을 명확히 이해하고 적용하고자 JPA 프록시와 엔티티 연관 관계에 대해서 정리해보고자 한다. 그에 앞서 Proxy라는 것을 알아보자. 백엔드 개발자 아니 개발자 라면 Proxy Sever의 개념을 알고 있을 것이다. Proxy Server의 개념에 대해 깊이 있게 들어가게 되면 글의 길이가 길어지니 간단히간단히 이야기하자면 Proxy Server는 실 서버와 데이터의 도메인 및 IP를 외부에 오픈하기 전 중계 역할을 한다고 생각하면 된다. 예를 들자면 내가 B.com이라는 도메인으로 .. 2022. 1. 31.
[ETC] javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String javax.persistence.PersistenceException: org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String 해당 오류는 Entity 클래스에서 @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="food_id") private String foodId; 에서 @GeneratedValue(strategy=GenerationType.AUTO)시 Id값에 해당하는 foodId를 String 변수로 선언해서 생기는 오류 이다. 이를 String이 아닌 다른 형식으로 바꿔 준다. ex.) String -> .. 2022. 1. 31.
[JPA] JPA가 무엇일까 실무에서 JPA ORM을 활용하며 개발을 진행하고 있다. 야생형으로 개발을 진행하고 있는데 개발 시작 후 1년이 지난 지금 조금은 JPA에 익숙해졌다 느껴졌을 때 인프런 강의를 바탕으로 JPA를 관련 된 내용을 조금씩 정리해보려고 한다. JPA는 Java Persistence API 의 약자로 ORM(Object-relational mapping)기술을 활용하고 있다. 1. 즉 자바의 객체와 데이터베이스의 값들을 매핑하는 것이다. Mybatis는 insert into tab_erj (id, name, number) value( #{id}...) 위의 예시 mapper.xml 처럼 mapper에 ID 및 데이터 베이스 방언(쿼리)들을 사용하여 직접 데이터를 CRUD를 했다면 JPA는 @Entity @Tab.. 2021. 12. 26.
[JPA] 1. JPA 공부를 시작해보자 약 4개월만에 블로그에 글을 쓰는 것 같다. 작년 12월 LG유플러스 개발자로 입사한 후 프로젝트 투입을 위해 인프런 교육을 신청해서 받았는데 말로만 들었던 JPA에 대해 배울 수 있었다. JPA 기초부터 JPQL, queryDSL 그리고 실제 API 적용 관련해서 정리를 해보고자 한다. 사실 대부분 회사 그리고 전 회사 같은 경우에는 Java Spring Framework와 DB간의 연결을 Mybatis를 이용하여 연동을 진행하였는데 SQL 쿼리 짜는 것에 상당한 리소스가 쓰였고 xml파일에 쓰다보니 약간의 오타가 있을 경우에도 바로 캐치하지 못하고 실행 후 DB 연결하여 조회했을 때 에러 부분(빨간..)을 찾을 수 있었다. 하지만 JPA을 이용하면 개발자가 객체 형태로만 개발을 진행하고 나머지는 JP.. 2021. 6. 21.