diff --git a/.gitignore b/.gitignore index 63177e3..e2dda84 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +##QueryDSL +generated + HELP.md .gradle /build/ diff --git a/build.gradle b/build.gradle index 3f2652e..df829d4 100644 --- a/build.gradle +++ b/build.gradle @@ -1,27 +1,90 @@ -plugins { - id 'org.springframework.boot' version '2.1.3.RELEASE' - id 'java' +buildscript { + ext { + springBootVersion = '2.1.3.RELEASE' + querydslPluginVersion = '1.0.10' + } + repositories { + mavenCentral() + maven { url "https://plugins.gradle.org/m2/" } // plugin 저장소 + } + dependencies { + classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") + classpath("gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugin:${querydslPluginVersion}") + } } +apply plugin: 'java' +apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'org.dailystudio' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' + +repositories { + mavenCentral() +} + + configurations { compileOnly { extendsFrom annotationProcessor } } -repositories { - mavenCentral() -} + dependencies { - implementation 'org.springframework.boot:spring-boot-starter-web' - compileOnly 'org.projectlombok:lombok' - annotationProcessor 'org.projectlombok:lombok' - testImplementation 'org.springframework.boot:spring-boot-starter-test' + + + compile("com.querydsl:querydsl-jpa") // querydsl + compile("com.querydsl:querydsl-apt") // querydsl + + runtimeOnly('com.h2database:h2')//h2 + compile("org.springframework.boot:spring-boot-devtools") + + runtimeOnly 'mysql:mysql-connector-java'//mysql + implementation 'org.springframework.boot:spring-boot-starter-data-jpa'//jpa + + implementation('io.springfox:springfox-swagger2:+')//swagger + implementation('io.springfox:springfox-swagger-ui:+') + + compile "org.projectlombok:lombok:+"//lombok + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation('com.auth0:java-jwt:3.3.0') //jwt + compile('org.springframework.boot:spring-boot-starter-aop') // aop + testImplementation 'org.springframework.boot:spring-boot-starter-test' + + implementation('org.springframework.boot:spring-boot-starter-security') //security + testImplementation('org.springframework.security:spring-security-test') + + testCompile('org.assertj:assertj-core:3.9.0')//test용 +} + +// querydsl 적용 +apply plugin: "com.ewerk.gradle.plugins.querydsl" // Plugin 적용 +def querydslSrcDir = 'src/main/generated' //QClass 생성 위치 + +querydsl { + library = "com.querydsl:querydsl-apt" + jpa = true + querydslSourcesDir = querydslSrcDir +} + +sourceSets { + main { + java { + srcDirs 'src/main/java', querydslSrcDir + } + } +} + +//JPA Annotation Processor Error를 잡아준다. +compileQuerydsl{ + options.annotationProcessorPath = configurations.querydsl +} + +configurations { + querydsl.extendsFrom compileClasspath } diff --git a/src/main/java/org/dailystudio/springbootstudy/SpringbootstudyApplication.java b/src/main/java/org/dailystudio/springbootstudy/SpringbootstudyApplication.java index 574a96e..934e1dc 100644 --- a/src/main/java/org/dailystudio/springbootstudy/SpringbootstudyApplication.java +++ b/src/main/java/org/dailystudio/springbootstudy/SpringbootstudyApplication.java @@ -2,12 +2,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.EnableAspectJAutoProxy; @SpringBootApplication +@EnableAspectJAutoProxy public class SpringbootstudyApplication { - public static void main(String[] args) { - SpringApplication.run(SpringbootstudyApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(SpringbootstudyApplication.class, args); + } } diff --git a/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuth.java b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuth.java new file mode 100644 index 0000000..4e0e7a9 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuth.java @@ -0,0 +1,9 @@ +package org.dailystudio.springbootstudy.auth.jwt; + +import java.lang.annotation.*; + +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface JwtAuth { +} diff --git a/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuthAspect.java b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuthAspect.java new file mode 100644 index 0000000..d20c35e --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtAuthAspect.java @@ -0,0 +1,51 @@ +package org.dailystudio.springbootstudy.auth.jwt; + +import com.auth0.jwt.interfaces.DecodedJWT; +import lombok.RequiredArgsConstructor; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.dailystudio.springbootstudy.util.LogAspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; + +@Component +@Aspect +@RequiredArgsConstructor +public class JwtAuthAspect { + + private static final Logger logger = LoggerFactory.getLogger(LogAspect.class); + private final HttpServletRequest httpServletRequest; + + + @Around("@annotation(org.dailystudio.springbootstudy.auth.jwt.JwtAuth)") + public Object validateJWT(final ProceedingJoinPoint pjp) throws Throwable { + final String token = httpServletRequest.getHeader(JwtInfo.HEADER_NAME); + //토큰 존재 여부 확인 + checkToken(token); + //토큰 검사 + validateToken(token); + //토큰 해독 + final DecodedJWT decodedJWT = JwtFactory.decode(token); + logger.info("Authorized Token Access - " + decodedJWT.getClaim(JwtInfo.USER_IDX).asString()); + return pjp.proceed(pjp.getArgs()); + + } + + private void checkToken(String token) { + if (token == null) { + logger.info("비어있는 토큰 접근."); + throw new RuntimeException("토큰없음"); + } + } + + private void validateToken(String token) { + if (!JwtFactory.isValid(token)) { + logger.info("유효하지 않은 토큰 접근."); + throw new RuntimeException("유효성 작살."); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtFactory.java b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtFactory.java new file mode 100644 index 0000000..1a0d2b3 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtFactory.java @@ -0,0 +1,50 @@ +package org.dailystudio.springbootstudy.auth.jwt; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.exceptions.JWTCreationException; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.DecodedJWT; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Date; + +public class JwtFactory { + + private static final LocalDateTime NOW = LocalDateTime.now(); + + public static String create(final Long idx) { + final Date expiredDate = Date.from(NOW.plusDays(JwtInfo.EXPIRES_LIMIT).toInstant(ZoneOffset.ofHours(9))); + return create(idx, expiredDate); + } + + public static String create(final Long idx, final Date expiredDate) throws JWTCreationException { + return JWT.create() + .withClaim(JwtInfo.USER_IDX, idx.toString()) + .withIssuer(JwtInfo.ISSUER) + .withExpiresAt(expiredDate) + .sign(JwtInfo.getAlgorithm()); + } + + public static Boolean isValid(final String token) { + try { + JWTVerifier jwtVerifier = JWT.require(JwtInfo.getAlgorithm()).build(); + jwtVerifier.verify(token); + + return true; + } catch (JWTVerificationException verificationException) { + + return false; + } + } + + public static DecodedJWT decode(final String token) { + try { + return JWT.decode(token); + } catch (JWTDecodeException decodeException) { + return null; + } + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtInfo.java b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtInfo.java new file mode 100644 index 0000000..12e68cd --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/auth/jwt/JwtInfo.java @@ -0,0 +1,28 @@ +package org.dailystudio.springbootstudy.auth.jwt; + +import com.auth0.jwt.algorithms.Algorithm; + +import java.io.UnsupportedEncodingException; + +public class JwtInfo { + + public static final String HEADER_NAME = "JWT"; + + public static final String ISSUER = "daily-studio"; + + public static final String TOKEN_KEY = "pci"; + + public static final Long EXPIRES_LIMIT = 100L; + + public static final String USER_IDX = "idx"; + + public static final String USER_AUTHORITY = "authority"; + + public static Algorithm getAlgorithm() { + try { + return Algorithm.HMAC256(JwtInfo.TOKEN_KEY); + } catch (IllegalArgumentException | UnsupportedEncodingException e) { + return Algorithm.none(); + } + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/config/QueryDSLConfig.java b/src/main/java/org/dailystudio/springbootstudy/config/QueryDSLConfig.java new file mode 100644 index 0000000..2406904 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/config/QueryDSLConfig.java @@ -0,0 +1,20 @@ +package org.dailystudio.springbootstudy.config; + +import com.querydsl.jpa.impl.JPAQueryFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +@Configuration +public class QueryDSLConfig { + + @PersistenceContext + private EntityManager entityManager; + + @Bean + public JPAQueryFactory jpaQueryFactory() { + return new JPAQueryFactory(entityManager); + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/config/SecurityConfig.java b/src/main/java/org/dailystudio/springbootstudy/config/SecurityConfig.java new file mode 100644 index 0000000..21d7ad3 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/config/SecurityConfig.java @@ -0,0 +1,29 @@ +package org.dailystudio.springbootstudy.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +@Configuration +public class SecurityConfig extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(HttpSecurity http) throws Exception { + http. + authorizeRequests() + .antMatchers("/h2/*") + .permitAll() + .and() + .csrf().disable() + .headers() + .frameOptions() + .disable(); + } + + @Bean + public BCryptPasswordEncoder bCryptPasswordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/config/SwaggerConfig.java b/src/main/java/org/dailystudio/springbootstudy/config/SwaggerConfig.java new file mode 100644 index 0000000..aae4943 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/config/SwaggerConfig.java @@ -0,0 +1,24 @@ +package org.dailystudio.springbootstudy.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +@Configuration +@EnableSwagger2 +public class SwaggerConfig { + + @Bean + public Docket api() { + return new Docket(DocumentationType.SWAGGER_2) + .select() + .apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출 + .paths(PathSelectors.ant("/api/**")) // 그중 /api/** 인 URL들만 필터링 + .build(); + } + +} \ No newline at end of file diff --git a/src/main/java/org/dailystudio/springbootstudy/controller/LoginController.java b/src/main/java/org/dailystudio/springbootstudy/controller/LoginController.java new file mode 100644 index 0000000..db56a3b --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/controller/LoginController.java @@ -0,0 +1,25 @@ +package org.dailystudio.springbootstudy.controller; + +import org.dailystudio.springbootstudy.auth.jwt.JwtFactory; +import org.dailystudio.springbootstudy.auth.jwt.JwtInfo; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +@RestController +@RequestMapping("api/login") +public class LoginController { + + @PostMapping + public String createToken(HttpServletResponse res, Long idx) { + final String token = JwtFactory.create(idx); + + res.addHeader(JwtInfo.HEADER_NAME, token); + res.setCharacterEncoding("UTF-8"); + res.setContentType("application/json"); + + return token; + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/controller/MemberController.java b/src/main/java/org/dailystudio/springbootstudy/controller/MemberController.java new file mode 100644 index 0000000..e17c95e --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/controller/MemberController.java @@ -0,0 +1,31 @@ +package org.dailystudio.springbootstudy.controller; + +import lombok.RequiredArgsConstructor; +import org.dailystudio.springbootstudy.dto.MemberLoginReqDto; +import org.dailystudio.springbootstudy.dto.MemberSaveReqDto; +import org.dailystudio.springbootstudy.service.MemberService; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("api/member") +public class MemberController { + + private final MemberService memberService; + + @PostMapping("/save") + public ResponseEntity save(@RequestBody MemberSaveReqDto saveReq) { + memberService.saveMember(saveReq); + return ResponseEntity.ok().build(); + } + + @PostMapping("/login") + public ResponseEntity login(@RequestBody MemberLoginReqDto loginReq){ + String result = memberService.loginMember(loginReq); + return ResponseEntity.ok(result); + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/domain/Member.java b/src/main/java/org/dailystudio/springbootstudy/domain/Member.java new file mode 100644 index 0000000..2d22521 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/domain/Member.java @@ -0,0 +1,31 @@ +package org.dailystudio.springbootstudy.domain; + +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import javax.persistence.*; +import javax.validation.constraints.NotNull; + +@Entity +@Table(name = "member") +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Member { + + @Id @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @NotNull + private String email; + + @NotNull + private String pass; + + @Builder + public Member(@NotNull String email, @NotNull String pass) { + this.email = email; + this.pass = pass; + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/dto/MemberLoginReqDto.java b/src/main/java/org/dailystudio/springbootstudy/dto/MemberLoginReqDto.java new file mode 100644 index 0000000..02852d7 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/dto/MemberLoginReqDto.java @@ -0,0 +1,9 @@ +package org.dailystudio.springbootstudy.dto; + +import lombok.Getter; + +@Getter +public class MemberLoginReqDto { + private String email; + private String pass; +} diff --git a/src/main/java/org/dailystudio/springbootstudy/dto/MemberSaveReqDto.java b/src/main/java/org/dailystudio/springbootstudy/dto/MemberSaveReqDto.java new file mode 100644 index 0000000..05a0de8 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/dto/MemberSaveReqDto.java @@ -0,0 +1,19 @@ +package org.dailystudio.springbootstudy.dto; + +import lombok.Getter; +import org.dailystudio.springbootstudy.domain.Member; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Getter +public class MemberSaveReqDto { + private String email; + + private String pass; + + public Member toEntity(PasswordEncoder passwordEncoder) { + return Member.builder() + .email(this.email) + .pass(passwordEncoder.encode(this.pass)) + .build(); + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/repository/MemberRepository.java b/src/main/java/org/dailystudio/springbootstudy/repository/MemberRepository.java new file mode 100644 index 0000000..5e369ef --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/repository/MemberRepository.java @@ -0,0 +1,8 @@ +package org.dailystudio.springbootstudy.repository; + +import org.dailystudio.springbootstudy.domain.Member; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface MemberRepository extends JpaRepository { + public Member findMemberByEmail(String email); +} diff --git a/src/main/java/org/dailystudio/springbootstudy/service/MemberService.java b/src/main/java/org/dailystudio/springbootstudy/service/MemberService.java new file mode 100644 index 0000000..9fee1a3 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/service/MemberService.java @@ -0,0 +1,32 @@ +package org.dailystudio.springbootstudy.service; + +import lombok.RequiredArgsConstructor; +import org.dailystudio.springbootstudy.domain.Member; +import org.dailystudio.springbootstudy.dto.MemberLoginReqDto; +import org.dailystudio.springbootstudy.dto.MemberSaveReqDto; +import org.dailystudio.springbootstudy.repository.MemberRepository; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class MemberService { + + private final MemberRepository memberRepository; + + private final BCryptPasswordEncoder bCryptPasswordEncoder; + + public void saveMember(final MemberSaveReqDto memberSaveReqDto) { + Member member = memberSaveReqDto.toEntity(bCryptPasswordEncoder); + memberRepository.save(member); + } + + public String loginMember(final MemberLoginReqDto loginReqDto) { + Member member = memberRepository.findMemberByEmail(loginReqDto.getEmail()); + + if (bCryptPasswordEncoder.matches(loginReqDto.getPass(), member.getPass())) { + return "success"; + } + return "fail"; + } +} diff --git a/src/main/java/org/dailystudio/springbootstudy/util/LogAspect.java b/src/main/java/org/dailystudio/springbootstudy/util/LogAspect.java new file mode 100644 index 0000000..44b1df7 --- /dev/null +++ b/src/main/java/org/dailystudio/springbootstudy/util/LogAspect.java @@ -0,0 +1,82 @@ +package org.dailystudio.springbootstudy.util; + +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.After; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.Ordered; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; + +/* +@Component로 이 클래스를 Bean으로 등록한다. +@Aspect로 해당 빈이 Aspect로 동작하게 한다. +@Order로 @Aspect 빈간의 우선순위를 정할 수 있다. 가장 낮을 레벨로 설정했다. +int값을 우선순위로 가지는데 값이 낮을 수록 우선순위가 높아진다. + */ +@Component +@Aspect +@Order(Ordered.LOWEST_PRECEDENCE) +public class LogAspect { + + private static final Logger logger = LoggerFactory.getLogger(LogAspect.class); + + private final HttpServletRequest httpServletRequest; + + public LogAspect(HttpServletRequest httpServletRequest) { + this.httpServletRequest = httpServletRequest; + } + /* + + 이제 Advice 메소드를 작성할 수 있다. + Advice 메소드는 빈이 호출에 끼어드는 시기를 정해줄 수 있다. + @Before : 메소드 실행 전에 끼어든다. + @After : 메소드 실행 후 끼어든다. + @AfterThrowing : 메소드의 실행 후 값을 반환할 때 끼어든다. + @Around : 실행 전후 어느 시점에든 끼어들 수 있다. + + */ + + /* + + Advice메소드의 파라미터는 PointCut이라 불리우며 + 끼어들 메소드의 범위를 지정해 줄 수 있다. + + execution(* org.dailystudio.spingbootstudy.*.*(..)) + 앞에서 부터 각각의 의미를 설명하면 + + * : 모든 리턴 타입을 의미한다. + org.dailystudio.spingbootstudy : 특정 패키지 + * : 모든 클래스 + * : 모든 메소드 + (..) : 모든 Argument + + 를 의미한다. + + */ + + // @Before("execution(* org.dailystudio.spingbootstudy.*.*(..))") + // public void doSomethingBefore(ProceedingJoinPoint joinPoint){ + // + // } + @Pointcut("execution(public * org.dailystudio.springbootstudy.controller.*.*(..))") + public void controllerLogMethod() { + } + + @Before(value = "controllerLogMethod()") + public void logStartController(JoinPoint joinPoint) { + logger.info("start - " + joinPoint.getSignature().getDeclaringTypeName() + " / " + joinPoint.getSignature().getName()); + } + + @After(value = "controllerLogMethod()") + public void logEndController(JoinPoint joinPoint) { + logger.info("finished - " + joinPoint.getSignature().getDeclaringTypeName() + " / " + joinPoint.getSignature().getName()); + } + + +} diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties new file mode 100644 index 0000000..9808e8e --- /dev/null +++ b/src/main/resources/application-local.properties @@ -0,0 +1,7 @@ +spring.h2.console.path=/h2 +spring.datasource.url=jdbc:h2:~/ds;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE +spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +spring.h2.console.enabled=true +spring.jpa.hibernate.ddl-auto=create + +spring.jpa.hibernate.naming.physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties new file mode 100644 index 0000000..0e6aef9 --- /dev/null +++ b/src/main/resources/application-prod.properties @@ -0,0 +1,14 @@ +## ͺ̽ ⺻ +spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver +spring.datasource.username=root +spring.datasource.password=saul2449 + + +## ͺ̽ Ű ּ +## jdbc:mysql://ּ/Ű̸? +spring.datasource.url=jdbc:mysql://localhost/ds?useSSL=false&serverTimezone=UTC + + +##MYSQL +spring.jpa.database=mysql +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL55Dialect \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 8b13789..43730c6 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,11 @@ +## properties մϴ. +spring.profiles.active=local +# Database +spring.jpa.show-sql=true +#spring.jpa.properties.hibernate.format_sql=true + + +# Log +#logging.level.org.hibernate.SQL=debug +logging.level.org.hibernate.type=debug \ No newline at end of file diff --git a/src/main/resources/import.sql b/src/main/resources/import.sql new file mode 100644 index 0000000..85060d4 --- /dev/null +++ b/src/main/resources/import.sql @@ -0,0 +1,372 @@ +-- --상점 10개 더미 데이터 + 점원 360개 더미 데이터 = 1상가 36점원 +-- INSERT INTO store (name, phone) VALUES ('name 001', 'phone 001'); +-- INSERT INTO store (name, phone) VALUES ('name 002', 'phone 002'); +-- INSERT INTO store (name, phone) VALUES ('name 003', 'phone 003'); +-- INSERT INTO store (name, phone) VALUES ('name 004', 'phone 004'); +-- INSERT INTO store (name, phone) VALUES ('name 005', 'phone 005'); +-- INSERT INTO store (name, phone) VALUES ('name 006', 'phone 006'); +-- INSERT INTO store (name, phone) VALUES ('name 007', 'phone 007'); +-- INSERT INTO store (name, phone) VALUES ('name 008', 'phone 008'); +-- INSERT INTO store (name, phone) VALUES ('name 009', 'phone 009'); +-- +-- +-- INSERT INTO clerk (name, store_id) VALUES ('name 0001', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0002', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0003', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0004', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0005', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0006', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0007', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0008', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0009', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0010', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0011', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0012', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0013', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0014', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0015', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0016', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0017', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0018', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0019', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0020', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0021', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0022', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0023', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0024', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0025', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0026', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0027', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0028', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0029', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0030', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0031', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0032', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0033', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0034', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0035', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0036', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0037', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0038', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0039', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0040', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0041', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0042', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0043', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0044', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0045', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0046', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0047', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0048', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0049', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0050', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0051', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0052', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0053', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0054', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0055', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0056', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0057', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0058', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0059', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0060', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0061', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0062', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0063', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0064', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0065', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0066', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0067', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0068', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0069', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0070', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0071', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0072', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0073', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0074', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0075', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0076', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0077', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0078', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0079', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0080', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0081', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0082', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0083', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0084', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0085', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0086', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0087', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0088', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0089', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0090', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0091', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0092', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0093', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0094', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0095', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0096', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0097', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0098', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0099', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0100', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0101', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0102', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0103', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0104', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0105', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0106', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0107', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0108', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0109', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0110', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0111', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0112', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0113', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0114', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0115', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0116', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0117', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0118', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0119', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0120', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0121', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0122', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0123', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0124', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0125', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0126', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0127', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0128', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0129', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0130', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0131', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0132', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0133', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0134', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0135', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0136', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0137', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0138', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0139', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0140', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0141', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0142', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0143', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0144', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0145', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0146', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0147', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0148', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0149', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0150', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0151', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0152', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0153', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0154', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0155', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0156', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0157', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0158', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0159', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0160', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0161', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0162', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0163', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0164', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0165', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0166', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0167', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0168', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0169', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0170', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0171', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0172', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0173', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0174', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0175', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0176', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0177', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0178', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0179', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0180', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0181', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0182', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0183', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0184', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0185', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0186', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0187', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0188', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0189', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0190', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0191', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0192', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0193', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0194', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0195', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0196', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0197', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0198', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0199', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0200', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0201', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0202', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0203', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0204', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0205', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0206', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0207', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0208', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0209', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0210', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0211', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0212', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0213', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0214', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0215', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0216', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0217', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0218', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0219', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0220', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0221', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0222', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0223', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0224', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0225', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0226', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0227', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0228', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0229', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0230', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0231', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0232', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0233', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0234', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0235', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0236', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0237', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0238', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0239', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0240', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0241', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0242', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0243', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0244', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0245', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0246', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0247', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0248', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0249', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0250', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0251', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0252', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0253', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0254', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0255', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0256', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0257', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0258', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0259', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0260', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0261', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0262', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0263', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0264', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0265', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0266', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0267', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0268', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0269', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0270', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0271', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0272', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0273', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0274', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0275', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0276', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0277', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0278', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0279', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0280', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0281', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0282', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0283', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0284', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0285', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0286', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0287', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0288', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0289', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0290', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0291', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0292', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0293', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0294', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0295', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0296', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0297', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0298', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0299', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0300', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0301', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0302', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0303', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0304', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0305', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0306', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0307', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0308', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0309', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0310', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0311', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0312', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0313', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0314', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0315', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0316', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0317', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0318', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0319', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0320', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0321', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0322', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0323', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0324', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0325', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0326', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0327', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0328', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0329', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0330', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0331', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0332', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0333', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0334', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0335', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0336', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0337', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0338', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0339', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0340', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0341', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0342', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0343', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0344', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0345', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0346', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0347', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0348', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0349', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0350', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0351', 9); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0352', 1); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0353', 2); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0354', 3); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0355', 4); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0356', 5); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0357', 6); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0358', 7); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0359', 8); +-- INSERT INTO clerk (name, store_id) VALUES ('name 0360', 9); diff --git a/src/test/java/org/dailystudio/springbootstudy/SpringbootstudyApplicationTests.java b/src/test/java/org/dailystudio/springbootstudy/SpringbootstudyApplicationTests.java index 1cbed09..71a1031 100644 --- a/src/test/java/org/dailystudio/springbootstudy/SpringbootstudyApplicationTests.java +++ b/src/test/java/org/dailystudio/springbootstudy/SpringbootstudyApplicationTests.java @@ -9,8 +9,8 @@ @SpringBootTest public class SpringbootstudyApplicationTests { - @Test - public void contextLoads() { - } + @Test + public void contextLoads() { + } }