HTTP View Template 응답 @RequestMapping("/response-view-v1") public ModelAndView responseView() { ModelAndView mav = new ModelAndView("response/hello") .addObject("data", "hello!"); return...
JPA - 프록시와 연관관계 관리(1)
프록시 em.find() vs em.getReference() em.find() : 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference() : 데이터베이스 조회를 미루는 프록시 엔티티 객체 조회 프록시 객체 실제 클래스를 상속받아서 만들어짐 실제 클래스와 겉 모...
JPA - 고급 매핑
상속관계 매핑 관계형 데이터베이스는 상속관계가 없고, 슈퍼타입, 서브타입 관계라는 모델링 기법이 객체 상속과 유사 함 상속관계 매핑은 결국 객체의 상속 구조와 데이터베이스의 슈퍼타입, 서브타입 관계를 매핑하는 것 슈퍼타입, 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법은 크게 3가지가 있음 각각 테이블로 변환 -&g...
JPA - 다양한 연관관계 매핑
연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대디 : @ManyToMany 단방향, 양방향 테이블 외래키 하나로 양쪽 조인 가능 사실 방향이라는 개념이...
JPA - 연관관계 매핑
연관관계가 필요한 이유 객체를 테이블에 맞추어 데이터 중심으로 모델링 하면, 협력관계를 만들 수 없음 데이블은 외래키로 조인을 사용해서 연관된 테이블을 찾음 객체는 참조를 사ㅇ해서 연관된 객체를 찾음 데이블과 객체 사이에는 이런 큰 간격이 존재 함 단방향 연관관계 어느 한쪽만이 다른쪽을 소유하고 있는 관계. 객체의 참조와 테이블의...
Spring MVC - HTTP 요청 기본 기능
HTTP 요청 - 기본 @RequestMapping("/hello-basic") public String helloBasic() { log.info("MappingController.helloBasic"); return "ok"; } @RequestMapping(value = "/mapping-get-v1", method = RequestM...
JPA - 엔티티 매핑
엔티티 매핑 객체와 테이블 매핑 @Entity, @Table 필드와 컬럼 매핑 @Column 기본 키 매핑 @Id 연관관계 매핑 @ManyToOne, @JoinColumn 객체와 테이블 매핑 @...
JPA - 영속성 관리
영속성 컨텍스트 엔티티를 영구 저장하는 환경 영속성 컨텍스트는 눈에 보이지 않는 논리적인 개녕 엔티티 매니저를 통하여 영속성 컨텍스트에 접근 스프링 프레임워크의 컨테이너내에는 엔티티 매니저와 영속성 컨택스트가 N:1 관게로 이루어져 있음 엔티티의 생명주기 비영속(new/transient) 영속(menaged) 준영속(...
Spring MVC - 구조 이해
Spring MVC 구조 동작 순서 핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회 핸들러 어댑터 조회 : 핸들러를 실행 할 수 있는 핸들러 어댑터를 조회 핸들러 어댑터 실행 : 핸들러 어댑터 실행 핸들러 실행 : 핸들러 어댑터가 실제 핸들러를 실행 ModelAndView 반환 : 핸들러 어댑터는...
Spring DB - 스프링 트랜잭션 전파
트랜잭션 전파(propagation) 트랜잭션을 각각 사용하는 것이 아닌 하나의 트랜잭션이 이미 진행중인 상황에서 또다른 트랜잭션이 수행될떄, 어떤식으로 동작할지 결졍하는 것을 트랜잭션 전파(propagation) 이라 함. 외부 트랜잭션이 수행중이고, 아직 끝나기 전 내부 트랜잭션이 수행 먼저 실행된 트랜잭션이 상대적으로...