반응형
MySql 설치
MySQL Server 설치 (For Windows, Community) : 네이버 블로그 (naver.com)
MySql 실행
시작메뉴에서 commend line client를 실행한 다음에 비밀번호를 입력하면 실행된다.
인테리제이에서 DB 설정
+ 버튼을 클릭하여 MySql을 추가해준다.
처음 사용하는 것이라면 드라이버 설치 팝업이 나올텐데 클릭하여 설치를 진행한다.
그 후 아래와 같이 기본 설정을 입력하고 연결 테스트를 진행한다.
고급 탭에서 아래와 같이 추가 설정한다.
이름: serverTimezone
값: Asia/Seoul
설정이 되었는지 확인
아래 쿼리를 실행시켜서 정상적으로 출력 되는지 확인
application.yml 파일에 database 연결을 해준다.
# mysql 설정
datasource:
url: jdbc:mysql://localhost
username: root
password: root
gradle 추가
bulid.gradle 파일에서 설정을 추가해주어 다운 받아준다.
// mysql 사용
runtimeOnly 'mysql:mysql-connector-java'
설정을 해준 다음 확인
아래 코드를 실행하여 정상적으로 실행되는지 확인
콘솔 화면
아래와 같은 text가 찍히는지 확인
org.hibernate.dialect.MySQL8Dialect
현재 사용하는 DB 생성
show databases;
create database book_manager;
테스트 진행을 위해서 jpa 설정 추가
# sql문을 확인하기 위해서 추가 설정
jpa:
show-sql: true
properties:
hibernate:
# 깔끔하게 보기 위해서 설정
format_sql: true
show_sql: true
# 주석 확인
use_sql_comments: true
# 자동으로 사용되는 entity 테이블을 생성해주는 설정
generate-ddl: true
# 자동으로 테이블이 생성되고 제거되도록 설정
hibernate:
ddl-auto: create-drop
확인
테스트 코드 에러 처리
에러코드: JPA metamodel must not be empty!
해당 코드
package com.example.bookmanager.controller;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.data.jpa.mapping.JpaMetamodelMappingContext;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
// MVC TEST 진행
@WebMvcTest
class HelloWorldControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
void helloWorld() throws Exception{
mockMvc.perform(MockMvcRequestBuilders.get("/hello-world"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(content().string("hello-world"));
}
}
package com.example.bookmanager;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
// Auditing 사용 선언하는 어노테이션
//@EnableJpaAuditing
public class BookmanagerApplication {
public static void main(String[] args) {
SpringApplication.run(BookmanagerApplication.class, args);
}
}
처리방법
1. 상단에 어노테이션 추가: @MockBean(JpaMetamodelMappingContext.class)
2. 별도에 클래스를 생성하여 해결(가장 추천하는 방법)
package com.example.bookmanager.configuration;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@Configuration
@EnableJpaAuditing
public class JpaConfiguration {
}
반응형
'Spring > JPA' 카테고리의 다른 글
N대N 연관관계 설정 2 (중간테이블을 만들어서 사용하는 방법) (0) | 2021.08.29 |
---|---|
N 대 N 연관관계 설정 (0) | 2021.08.29 |
1대N 연관관계 (0) | 2021.08.06 |
1 대 1 관계 설정하는 방법 (0) | 2021.07.24 |
연관 관계 설정 -1 (0) | 2021.07.24 |