Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간이다.영속성 컨텍스트에 접근하여 Entity 객체들을 조작하기 위해서는 EntityManager가 필요.EntityManager는 이름 그대로 Entity를 관리하는 관리자입니다.개발자들은 EntityMan

비영속(Transient)쉽게 말하자면 new 연산자를 통해 인스턴스화 된 Entity 객체를 의미.아직 영속성 컨텍스트에 저장되지 않았기 때문에 JPA의 관리를 받지 않습니다.순수한 Entity 클래스를 new 연산자로 하나 만든 상태.영속성 컨텍스트 JPA가 관리하

SpringBoot 환경에서는 EntityManagerFactory와 EntityManager를 자동으로 생성해줍니다.application.properties에 DB 정보를 전달해 주면 이를 토대로 EntityManagerFactory가 생성됩니다 그리고 EntityM

Spring Data JPA는 JPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈입니다.JPA를 추상화시킨 Repository 인터페이스를 제공합니다.Repository 인터페이스는 Hibernate와 같은 JPA구현체를 사용해서 구현한 클래스를 통해 사용됩니다.
연관 관계 고민고객이 음식을 주문 시, 주문 정보는 어느 테이블에 들어가야 할까요?고객 테이블? 음식 테이블?고객 테이블한명의 고객은 음식을 여러개를 주문할 수 있습니다.고객과 음식은 1 대 N 관계입니다.주문한 음식의 정보를 파악하기 위해 food_id 컬럼을 추가합
@OneToOne 애너테이션은 1 대 1 관계를 맺어주는 역할을 합니다.고객 Entity와 음식 Entity가 1 대 1 관계라 가정하여 관계를 맺어보겠습니다.Entity에서 외래 키의 주인은 일반적으로 N(다)의 관계인 Entity 이지만 1 대 1 관계에서는 외래

@ManyToOne 애너테이션은 N 대 1 관계를 맺어주는 역할을 합니다.음식 Entity와 고객 Entity가 N 대 1 관계라 가정하여 관계를 맺어보겠습니다.음식 Entity가 N의 관계로 외래 키의 주인음식고객양방향 참조를 위해 고객 Entity에서 Java 컬렌

@ManyToMany 애너테이션은 N 대 M 관계를 맺어주는 역할을 합니다.음식 Entity와 고객 Entity가 N 대 M 관계라 가정하여 관계를 맺어보겠습니다.N : M 관계를 풀어내기 위해 중간 테이블(orders)을 생성하여 사용합니다.음식 Entity가 외래
@DynamicInsert와 @DynamicUpdate는 JPA에서 엔티티의 저장(insert) 및 업데이트(update) 시 엔티티의 변화가 있는 컬럼에 대해서만 SQL을 실행하고, 변화가 없는 컬럼에 대해서는 실행하지 않는 기능을 제공합니다.한편, @DynamicI
할인율(DiscountRate)을 엔티티에 포함시키되, @Embedded를 사용하여 별도의 값 객체(Value Object)로 관리하려고 한다. 값 객체로 분리하면 데이터 검증과 비즈니스 로직을 응집력 있게 유지하면서 코드 재사용성과 테스트 용이성을 높일 수 있다고 한