java/jpa

    [JPA] column default value 넣기

    [JPA] column default value 넣기

    목표: JPA를 통해 엔티티를 save 할 때, 특정 필드에 따로 값을 넣지 않아도 default value가 저장되도록 설정하자. 타겟 컬럼: usage_status → 해당 데이터에 대한 사용 여부 (YES or NO) @ColumnDefault @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id", nullable = false)\ private Long id; @Column(nullable = false) priv..

    [Spring] JPA 연관관계 - ID 만 사용해서 save

    [Spring] JPA 연관관계 - ID 만 사용해서 save

    다대일 연관관계를 맺고 있는 두 엔티티가 있다고 하자. @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(Team team) { this.team = team; } } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity publi..

    [JPA] DDL-AUTO 테이블 자동 생성 전략 - SQL Column 매칭

    spring.jpa.hibernate.ddl-auto 옵션에서 create 혹은 create-drop 옵션을 사용하면 애플리케이션 실행시 DB 테이블들을 모두 Drop 하고 @Entity로 등록한 객체들을 DB 테이블로 새롭게 Create한다. spring: jpa: hibernate: ddl-auto: create 다음 엔티티를 DB 테이블로 등록한다고 하자. @Entity @Getter @Table(name = "orders") public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_id") private Long id; private int price; private String..

    [JPA] CommandAcceptanceException: Error executing DDL

    스프링부트에서 JPA를 사용할 때, 애플리케이션 실행시 발생하는 오류이다. spring: jpa: hibernate: ddl-auto: create spring.jpa.hibernate.ddl-auto 옵션에서 create 혹은 create-drop 옵션을 사용하면 애플리케이션 실행시 DB 테이블들을 모두 Drop 하고 시작한다. 이 때, drop할 테이블을 찾지 못하여 나타나는 에러이다. 보통 애플리케이션을 재실행 해보거나, ddl-auto 옵션을 update로 변경하면 해결할 수 있다. -> 즉, DB에 테이블들이 처음에 존재하면 된다.

    [Spring Data JPA] 나머지 기능들

    https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84/ 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 지금부터 실무에서 자주 쓰이지는 않지만 알고 있으면 가끔 유용할 수 있는 기능들에 대해 알아볼 것이다. 왜 실무에서 자주 안쓰이는지에 대해서도 알아보면서 편한 마..

    [Spring Data JPA] 스프링 데이터 JPA 분석

    https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84/ 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 스프링 데이터 JPA 구현체 분석 스프링 데이터 JPA는 리포지토리 사용시 자동으로 구현체를 생성해준다. 어떤 구현체를 생성해 주는 것일까? -> 스프링 데이터 ..

    [Spring Data JPA] 확장 기능

    https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84/ 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 사용자 정의 리포지토리 구현 스프링 데이터 JPA는 리포지토리 인터페이스만 정의하고 구현체는 스프링이 자동 생성한다. 그러나 다양한 이유로 인터페이스의 메서드를 ..

    [Spring Data JPA] 쿼리 메소드 기능

    https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-%EC%8B%A4%EC%A0%84/ 실전! 스프링 데이터 JPA - 인프런 | 강의 스프링 데이터 JPA는 기존의 한계를 넘어 마치 마법처럼, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있습니다. 그리고 반복 개발해온 기본 CRUD 기능도 모두 제공합니다 www.inflearn.com 강의를 들으며 생각 정리 + "자바 ORM 표준 JPA 프로그래밍" 책 참고 스프링 데이터 JPA는 JpaRepository를 extends 해서 따로 메서드 정의 없이 findById 등의 JPA 기능들을 편리하게 사용할 수 있다. 근데..