진짜 개발자
전체방문자

585,995

today 879
yesterday 681
본문 바로가기

FrameWork/Spring JPA (총 12개)

Spring JPA - Entity 저장시 Embedded Value를 초기화하지 않는 경우의 에러 (not-null property references a null or transient value) jpa Embedded Value Null error Spring JPA에서 Entity 생성시, 특정 컬럼이 null이 될수 없다는 에러에 대해 알아보도록 하겠습니다. JPA를 사용하여 개발하던 도중, Embedded Value 타입의 값을 적지 않는 경우, cannot be null 에러가 발생되는 현상이 나타났습니다. 그동안 개발하는 도중에는 한번도 마주한적이 없었는데, 특이한 경우여서 정리를 해볼까합니다. JPA Column '' cannot be null1. 에러 발생 시나리오Entity를 저장하는 로직을 개발중에 있었습니다. 이때 Entity안의 특정 Embedded Value는 도메인 개념상의 이유로, Entity가 초기화 되는 시점이 아닌, 별도로 생성하여 입력해주어야 하는 상황이었습니다...
Spring JPA - JPA를 이용해 Commerce App 만들기 - 3 (엔티티 개발) Spring JPA - JPA를 이용해 Commerce App 만들기 - 3 (entity 작성) 이번 시간에는 지난 포스팅에서 다룬 설계를 토대로하여, Entity 클래스를 작성해보도록 하겠습니다. 우선 Entity를 개발하기 앞서 패키지 구조를 살펴보도록 하겠습니다. ​x​- common : 어플리케이션에서 전체적으로 사용되는 기능들이 위치함 - config : Spring 설정파일들이 위치함 - value : entity들에서 공통적으로 사용되는 value타입 클래스들이 위치함- domains : 도메인들이 위치함 - user : User 도메인 패키지 - presentation : 사용자의 endpoint로 사용자와 소통하는 UI로직(Controller)들이 위치함 - service : appli..
Spring JPA - JPA를 이용해 Commerce App 만들기 - 2 (설계 : 요구사항 분석, 도메인모델, 엔티티 설계) Spring Boot - JPA를 이용해 Commerce App 만들기 - 2 이 포스팅은 김영한님의 실전! 스프링 부트와 JPA활용 1을 참고하여 작성되었습니다. 이번 포스팅에서는 우리가 만들 Commerce App의 요구사항 분석을 진행하고 이어 설계를 해보도록 하겠습니다. 요구사항 분석우리가 만들어볼 App은 간단한 쇼핑몰입니다. 각 기능별 요구사항을 알아보도록 하겠습니다. 1. 회원회원 등록회원 조회로그인 2. 상품상품 등록상품 수정상품 조회* 상품은 재고관리가 필요합니다.* 상품 종류에는 도서, 음반, 영화가 있습니다.* 상품을 카테고리로 구분할 수 있습니다.* 상품 주문시 배송 정보를 입력합니다. 3. 주문상품 주문상품 주문 취소주문 내역 조회 도메인 모델 다음으로 해야할 일은, 요구사항을 토..
Spring JPA - JPA를 이용해 Commerce App 만들기 - 1 (프로젝트 설정) 1. 프로젝트 설정 안녕하세요, SpringBoot와 JPA를 이용해 Commerce WebApp을 개발해 나아가는 과정을 정리해보도록 할것입니다. 서버부터, 클라이언트 및 배포 그리고 aws를 이용해 인프라를 구축하는것 까지 해나아갈 예정입니다. 프로젝트 설정이번 포스팅에서는 프로젝트를 설정하는 시간을 가져보도록 할것입니다. 필자는 IntelliJ라는 Ide를 사용하고 있습니다. 1. 의존성 추가Intellij에서 프로젝트 생성시 위와 같이 의존성을 선택하여 추가할 수 있습니다. Intellij를 사용하지 않는 분들은 maven repository를 방문하여, 위의 의존성들을 추가해주세요. 이제 하나하나 필요한 의존성에 대해 설명드리겠습니다. Spring Boot DevToolsSpring Boot를 ..
JPA - Entity의 가독성을 높이자 - 2 (Embedded Id 사용법) DDD 를 진행하며 Entity의 가독성에 대한 고민을 많이 하기 시작했습니다 DDD 를 진행하며 Entity의 가독성에 대한 고민을 많이 하기 시작했습니다. 각각의 앱들은 자신들만의 도메인 제약사항을 가지고 있으며, 그에 따라 키값도 특별하게 설정되는 경우가 있었습니다. 예를들어 보통의 경우에는 RDBMS의 Auto_Increment를 설정을 이용하며, Long타입으로 Entity의 Id를 설정했지만, 이번에 진행하는 App에서는 조금 특별한 ID를 설정해야하는 경우가 있었습니다. 조금 더 자세히 설명드리자면, UserEntity의 경우에는 Google Oauth2를 통해 발급된 AccessToken을 Id로 사용하며, WorkPlaceEntity라는 이름의 엔티티의 경우에는 사업자 번호를 ID로 사용..
JPA - Entity의 가독성을 높이자(@Embedded, @Embeddable, @AttributeOverride 사용법) @Embedded, @AttributeOverride JPA에서는 Entity안의 값을 조금 더 의미있는 값으로 표현하기 위해 응집된 하나의 객체로 데이터를 표현합니다. 이번 포스팅에서는 이 처럼 JPA의 Entity를 조금 더 확실한 의미로 표현하는 방법과, 그에 따라 발생하는 중복 column에러를 해결하는 방법을 알아보겠습니다. 1. @Embedded , @Embeddable 1.1 시나리오일반적인 회원가입의 경우에 회원을 표현하는 간단한 방법을 알아보고, 이를 좀더 의미있는 객체로 표현하는 방법을 알아보겠습니다. @Entity@Table(name = "user")public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) priv..