JPA/JPA 활용 1

·JPA/JPA 활용 1
폼 객체 vs 엔티티 직접 사용요구사항이 정말 단순할 때는 폼 객체(MemberForm) 없이 엔티티(Member)를 직접 등록과 수정 화면에서 사용해도 된다.  하지만 화면 요구사항이 복잡해지기 시작하면, 엔티티에 화면을 처리하기 위한 기능이 점점 증가한다. 결과적으로 엔티티는 점점 화면에 종속적으로 변하고, 이렇게 화면 기능 때문에 지저분해진 엔티티는 결국 유지보수하기 어려워진다. 실무에서 엔티티는 핵심 비즈니스 로직만 가지고 있고, 화면을 위한 로직은 없어야 한다. 화면이나 API에 맞는 폼 객체나 DTO를 사용하자. 그래서 화면이나 API 요구사항을 이것들로 처리하고, 엔티티는 최대한 순수하게 유지하자.변경 감지와 병합(merge)준영속 엔티티?영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다..
·JPA/JPA 활용 1
주문 엔티티 개발@Entity@Getter@Setter@Table(name = "orders")@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Order { @Id @Column(name = "order_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) ..
·JPA/JPA 활용 1
상품 엔티티 개발(비즈니스 로직 추가)@Entity@Getter@Setter@DiscriminatorColumn(name = "dtype")@Inheritance(strategy = InheritanceType.SINGLE_TABLE)public abstract class Item { @Id @Column(name = "item_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int price; private int stockQuantity; @ManyToMany(mappedBy = "items") private List ..
·JPA/JPA 활용 1
회원 리포지토리 개발@Repositorypublic class MemberRepository { @PersistenceContext private EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } publ..
an_jjin
'JPA/JPA 활용 1' 카테고리의 글 목록