목록Spring Boot (4)
이것저것
프록시 em.find() vs em.getReference() em.find() : 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference() : 데이터베이스 조회를 미루는 가짜 (프록시) 엔티티 객체 조회 껍데기는 똑같은데 안에는 텅텅 빈것 프록시 특징 실제 클래스를 상속받아서 만들어짐 실세 클래스와 겉 모양이 같다. Hibernate가 내부적으로 만든 것이다., 사용하는 입장에서 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다. (이론상) 프록시 객체는 실제 객체의 참조 (target)을 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 Member member = em.getReference(Member.class, "id1"); member.getNa..
1. FK 가 있는 곳을 연관 관계의 주인으로 정합니다. ex) 1:M 관계에서 항상 M쪽에 FK 존재하므로, FK가 있는 M을 연관관계의 주인으로 정한다. (1을 연관 관계의 주인으로 설정해도 괜찮지만 유지보수 측면에서 어렵고, 성능 문제가 발생 가능) 2. @Getter는 가급적 열어두고 @Setter는 꼭 필요한 경우에만 사용합니다. 3. Many To Many 관계의 사용을 지양합니다. Many To Many는 중간 엔티티로 매핑에서 사용 (Many To Many -> One To Many & Many To One으로 풀어내서 사용) 4. 값 타입(@Embeddable)은 변경 불가능하게 설계 @Setter를 제거하고, 생성자에서 값을 모두 초기화해서 변경 불가능한 클래스로 만든다. 5. 모든 연..
[Spring 3.1 이하] 응답헤더에 Content-Type 지정 @RequestMapping(value = "/users",method=RequestMethod.POST) [Spring 3.2 이상] content-type 지정 @RequestMapping(value = "/users", produces = "application/json; charset=utf8")
Model 평범한 자바 객체, POJO 도메인 객체 또는 DTO 로 화면에 전달할 또는 화면에서 전달 받은 데이터를 담고 있는 객체 (@Entity) DB와 강하게 연관되어있음 (매핑) VIew HTML, JSP, THYMELEAF... (정적or 동적컨텐츠) 데이터를 보여주는 역할 다양한 형태 : HTML, JSON, XML 등 Controller UserController, ArticelController... 사용자 입력을 받은 모델 객체의 데이터를 변경하거나 뷰에 전달하는 역할 ex) 입력값 검증, 모델 객체 변경, 변경된 모델 개체 뷰에 전달 MVC 흐름 View 에서 Request가 들어오면 controller로 들어와 model에 보내면 model 이 데이터를 처리하고 서버(controlle..