Spring 110

4.3.2 엔티티의 테스트

이번 장의 예제에서는 Querydsl 위주의 예제로 다른 개발 전에 테스트를 진행합니다. GuestbookRepositoryTests에는 300개의 테스트데이터를 먼저 넣도록 합니다. package org.zerock.guestbook.repository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.zerock.guestbook.entity.Guestbook; import java.util.stream.IntStream; @SpringBootTes..

4.3.1 동적쿼리 처리를 이한 Querydsl 설정

build.gradle을 수정해줍니다. compile 그 구문 빼고 sync 돌리고 다시 넣고 옆에 재생버튼 누름 실행가능한 task가 추가된 것을 확인할 수 있씁니다. Unable to load class 'com.mysema.codegen.model.Type'. This is an unexpected error. Please file a bug containing the idea.log file. 에러 발생 https://www.inflearn.com/questions/355723/compilequerydsl-%EC%98%A4%EB%A5%98 compileQuerydsl 오류 - 인프런 | 질문 & 답변 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1..

[Android] 프로젝트 생성 시 already exists at the specified project location and it is not empty 오류

안드로이드 어드바이저를 할 때 받았던 오류 질문이다. 빨간 줄이 뜨는 것도 아니고 프로젝트 생성부터 삐걱 거리는 경우이다. 사실 이런 경우는 흔치 않았는데, 구글링하다 간단한 방법으로 해결할 수 있고, 누군가에게 도움이 될 것 같아서 작성한다. 새로운 프로젝트 생성 New Project-> 오류가 일어난 New Project창을 보면 save location 창의 뒤에 어떤 이유로든 Name이 입력이 안되어 있을 것이다. 따라서 \ + name 을 save location 뒤에 입력해주자. 해결!

4.2 자동으로 처리되는 날짜/시간 설정

엔티티와 관련된 작업을 하다 보면, 데이터의 등록 시간과 수정시간과 같이 자동으로 추가되고 변경되어야 하는 칼럼들이 있습니다. 이를 매번 프로그램 안에서 처리하는 일은 번거롭기 때문에 자동으로 처리할 수 있도록 어노테이션을 이용해서 설정합니다. @MappedSuperclass라는 특별한 어노테이션이 적용되는데 해당 어노테이션이 적용된 클래스는 테이블로 생성되지 않습니다. 실제 테이블은 BaseEntity클래스를 상속한 엔티티의 클래스로 데이터베이스 테이블이 생성됩니다. JPA에서 사용하는 엔티티 객체들은 영속 콘텍스트라는 곳에서 관리되는 객체입니다. 이 객체들이 변경되면 결과적으로 데이터 베이스에 이를 반영하는 방식입니다. JPA방식에서는 해당 엔티티 객체는 유지되고 필요할 때 꺼내서 재사용하는 방식이 ..

프로젝트 구조 만들기

build.gradle에 이 두줄을 추가해줍니다. 그런데 오류가 납니다... compile이라고 하지 말고 implementaion이라고 합시다. 그러면 build successfull 나옵니다. 4.1.3 컨트롤러/화면 관련 준비 list.html 생성 실행시켜보려 했으나 다음과 같은 오류 발생 Cause: error: invalid source release: 17 아래와 같이 수정

3.4.3 부트스트랩 템플릿 적용하기

이번 장의 마지막은 다음 예제에서 사용할 템플릿을 만들어 보는 것입니다. https://startbootstrap.com/template/simple-sidebar Simple Sidebar - Bootstrap Sidebar Template - Start Bootstrap Like our free products? Our pro products are even better! Go Pro Today! startbootstrap.com 책을 따라하면 제대로 안나온다. 구버전인가보다 이렇게 코드를 수정하면 잘나온다. 04. 프로젝트 구조 만들기 전체적인 구조를 실습하기 위해서 테이블이 하나로만 구성되는 '방명록'을 구성하도록 합니다. 4.1 프로젝트의 와이어프레임 와이어프레임을 제작하면 화면의 URI와 전달..

3.2 Thymeleaf의 기본 사용법

@GetMapping의 value 속성값을 '{}'로 처리하면 하나 이상의 URL을 지정할 수 있습니다. exModel()은 나중에 다양하게 Thymeleaf를 실습하기 위해서 URL 변경이 용이하게 작성하였습니다. SampleDTO 타입의 객체를 20개 추가하고 이를 Model에 담아서 전송합니다. 3.2.1 반복문 처리 th:each = "변수: ${목록} " 3.2.2 제어문 처리 th:if와 th:unless를 이용한다면 상황에 맞게 다른 내용을 출력하는 것이 가능해집니다. 3.2.3 inline 속성 여기서 중요한 부분은 th:inline속성 결과에서 주목해야하는 부분 3.4 Thymeleaf의 레이아웃 - JSP의 include와 같이 특정 부분을 외부 혹은 내부에서 가져와서 포함하는 형태 -..

2.6.2 @Query 어노테이션

일반적인 경우에는 간단한 처리만 쿼리 메서드를 이용하고, @Query를 이용하는 경우가 더 많습니다. @Query의 경우는 메서드의 이름과 상관없이 메서드에 추가한 어노테이션을 통해 메서드에 추가한 어노테이션을 통해서 원하는 처리가 가능합니다. @Query의 value는 JPQL로 작성하는데 흔히 '객체지향 쿼리'라고 불리는 구문들입니다. @Query를 이용해서는 다음과 같은 작업을 실행할 수 있습니다. - 필요한 데이터만 선별적으로 추출하는 기능이 가능 - 데이터베이스에 맞는 순수한 SQL을 사용하는 기능 - insert, update, delete와 같은 select가 아닌 DML 등을 처리하는 기능 객체지향쿼리는 테이블 대신에 엔티티클래스를 이용하고, 테이블의 칼럼 대신에 클래스에 선언된 필드를 이..