[ Spring Boot ] N:1 (다대일) 연관관계 part2
·
Spring Boot
@ManyToOne 과 Eager/Lazy Loading@ManyToOne을 사용시 FK쪽의 엔티티를 가져올때 PK쪽의 엔티티도 같이 가져온다.실제로 쿼리를 실행하면, 내부적으로 left outer join처리가 되어 데이터를 가져온다.하지만 매번 이렇게 여러 테이블을 조인하여 가져온다면 효율이 떨어질 것이다. fetch는 Lazy loading을 권장한다.위와 같이 연관관계를 가진 모든 엔티티를 같이 로딩하는 것을 'Eager loading'이라고 한다.(즉시 로딩이라고도 한다.)즉시 로딩은 성능 저하를 피할 수 없는데, JPA에서는 연관관계 데이터를 어떻게 가져올 것인가 를 fetch(패치) 라고 한다. 그리고, 즉시 로딩의 반대 개념을 'Lazy loading'(지연 로딩)이라고 한다.Board.j..
[ Spring Boot ] N:1 (다대일) 연관관계 part1
·
Spring Boot
연관관계와 관계형 DB 설계관계형 DB 는 entity간의 relation이 중요👉1:1 1:N N:1 M:N이를 표현하기 위해 PK와 FK사용 @EnableJpaAuditing자동으로 시간을 처리해주는 어노테이션Application 클래스위에 작성 @ManyToOneN:1 관계ex) board : member  관계 (멤버 한명당 여러개의 글을 작성할 수 있다)@Entity@Builder@AllArgsConstructor@NoArgsConstructor@Getter@ToString(exclude = "writer")public class Board extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ..
[ Spring Boot ] 스프링MVC & Thymeleaf part.3
·
Spring Boot
Thymeleaf 레이아웃1. include방식SampleController //include방식 처리 @GetMapping("/exLayout1") public void exLayout1() { log.info("exLayout---------"); } fragment1.html Part 1 Part 2 Part 3 exLayout1.htmlFragment TestLayout 1 - 1Layout 1 - 2Layout 1 - 3 exLayout1.html이 fragment1.html의 조각들을 가져와서 사용한다.th:replace: 기존의 내용 완전히 대체th:insert : 기존의 내용의 바깥쪽 태그 유지하고 내용 추가하기 2. 레이아웃 템플릿 만들기..
[ Spring Boot ] 스프링MVC & Thymeleaf part.2
·
Spring Boot
타임리프는 계속 된다..... 반복문에 state (index) 처리 [[${state.index}]] --- [[${dto}]]  제어문th:if ~ unless문 [[${state.index}]] --- [[${dto}]]  inline 속성SampleController일부 @GetMapping("/exInline") public String exInline(RedirectAttributes redirectAttributes) { log.info("exInline......"); SampleDTO dto = SampleDTO.builder() .sno(1..
[ Spring Boot ] 스프링MVC & Thymeleaf part.1
·
Spring Boot
Thymeleaf란?JSP를 대신하는 화면처리 기술 thymeleaf의 장점Model에 담긴 객체를 화면에서 js로 처리하기 편리JSP와 유사하게 ${ }를 별도 처리 없이 이용 가능연산, 포맷과 관련된 기능을 추가적인 개발 없이 지원개발도구를 이용할때 .html파일로 생성하는데 문제가 없고, 별도의 확장자를 이용하지 않는다라고는 하는데 아직 모르겠음프로젝트 설정기본 3개랑, thymeleaf dependencies에 추가 포트 8090 설정 Edit Configuration 에서  프로젝트 생성 SampleDTOpackage org.zerock.ex3.dto;import lombok.Builder;import lombok.Data;import java.time.LocalDate;@Data@Builder..
[ Spring Boot ] @Query 어노테이션, Querydsl
·
Spring Boot
@Query 어노테이션 사용 이유JPA에서는쿼리메서드를 제공하는데, 이는 검색같은 간단한 기능을 작성할때는 편함.But, 조인이나 복잡한 조건을 처리할때는 And,Or이 들어가서 불편함따라서, 간단한 처리는 쿼리메서드를, 복잡한 처리는 @Query를 사용한다. ex) JPQL & Native SQL //JPQL @Query("select m from Memo m where m.memoText like %:memo% order by m.mno desc") List findByMemoTextLike(String memo); //Native SQL @Query(value = "select * from tbl_memo where memo_text like concat('%',?1,'%..
hanjuCoding
'spring boot' 태그의 글 목록