웹개발/Spring 5

[Spring] JPA save()

JPA는 Entity를 저장할 때 @Id에 명시된 값으로 엔티티를 관리한다.musical 객체를 생성한 후 이를 save()의 매개변수로 지정하면 JPA는 이를 새로운 Entity가 아닌 이미 존재하는 Entity로 간주한다.id = null 일 경우, 새로운 Entity로 간주(INSERT 실행)아닐 경우, 기존 Entity로 간주(Update 실행)그렇기 때문에 id로 설정한 값을 가진 Musical 레코드가 존재하지 않는다면, ConstraintViolationException이 발생한다. 해결 방법Musical savedMusical = musicalRepository.save(musical);Schedule schedule = new Schedule( null, LocalDate.pa..

웹개발/Spring 2025.02.04

Entity 생성

@Entity Database Table과 1:1로 매핑되는 객체 @Table 객체와 매핑되는 Database의 Table명을 지정하기 위해 사용한다. @Getter, @Setter, @builder, @AllArgsConstructor, @NoArgsConstructor Lombok Annotation으로 Get, Set, Builder, Constructor 관련 코드를 자동으로 생성한다. @JsonIgnore 서버에서 Json 응답을 생성할때 해당 필드는 ignore 한다. @Id 해당 필드가 Primary Key이다. @Column 매핑되는 Database Column의 정보 @ManyToMany @JoinTable User, Authority 테이블의 다대다 관계를 일대다, 다대일 관계의 조인 ..

웹개발/Spring 2021.03.29

스프링 빈과 의존관계-(1)컴포넌트 스캔과 자동 의존관계 설정

스프링 빈을 등록하는 2가지 방법 -컴포넌트 스캔과 자동 의존관계 설정 @Controller안에 @Component 스캔이 있어서 스프링 빈으로 자동 등록 된다. -자바 코드로 직접 스프링 빈 등록하기 @SpringBootApplication안에 package 밑에 있는 스프링 빈으로 등록, 아닌 것은 컴포넌트 스캔을 하지 않는다. 스프링은 스프링 컨테이너에 빈을 등록할 때, 기본으로 싱글톤으로 등록한다. 따라서 빈이면 모두 같은 인스턴스이다.

웹개발/Spring 2021.03.02

@ResponseBody

@ResponseBody란?: Http의 Body부에 문자나 객체를 직접 반환해는 어노테이션.viewResolver 대신에 HttpMessageConverter가 동작하여 문자나 객체를 처리해준다.사용 원리: 웹 브라우저에서 내장 톰캣 서버로 요청하고 다음으로 스프링 컨테이너 안에 Controller로 이동해서 HttpMessageConverter로 이동한다.HttpMessageConverter란?: JsonConverter와 StringConverter가 있는데 클라이언트의 HTTP Accept 헤더와 서버의 Controller 반환 타입 정보 이 두가지를 조합해서 HttpMessageConverter가 선택된다.api: return 객체; -> 화면에 JSON 형식으로 객체를 반환하는 방식tip.In..

웹개발/Spring 2021.02.17