출처@Repositorypublic class MemberRepository {}@RunWith(SpringRunner.class)@SpringBootTestclass MemberRepositoryTest {}
출처@ManyToOne으로 parent를 걸어주고 @OneToMany로 child를 걸어준다. 엔티티를 생성해주는 ddl은 그대로 사용하면 안되고 다듬어서 사용해야 한다. 엔티티 설계 시 Setter를 사용하지 말자유지보수가 어렵다모든 연관관계는 지연로딩으로 설정 즉시
리포지토리 @Repository 스프링 빈으로 등록 @PersistenceContext 애노테이션에 의해 스프링이 EntityManager를 만들어서 주입해준다. findAll, findByName은 JPQL을 사용한다. 서비스 @Transactional 기본적으
출처위와 같이 Item 추상 클래스에 비즈니스 로직을 추가한다비즈니스 로직을 Item 클래스 안에 추가해야 객체지향적이고 응집도가 높다. setter를 사용하지 않고 이렇게 하는게 객체지향적이다.NotEnoughStockException은 RunTimeException
엔티티 개발 createOrder에서 가변 인자 문법을 사용해 OrderItem 여러개를 받을 수 있도록 했다. Order 생성은 복잡하기 때문의 별도의 생성 메서드를 활용해 연관관계를 모두 걸고 상태까지 결정해서 생성할 수 있다.
출처요구사항이 단순할 때는 dto 대신 엔티티를 바로 사용해도 된다.하지만 요구사항이 복잡한 경우 엔티티를 바로 사용하면 엔티티에 화면 관련 기능이 추가되고 화면 종속적이게 된다. 따라서 유지보수가 어려워진다.JPA를 사용할 때는 엔티티를 다른 곳에 의존성이 없도록 순