1. ---------- 1
SPRING-DATA-JPA
초보 입문자용 개인용 정리 튜토리얼
(아라한사의 메모..;;)
https://fb.com/me.adunhansa
https://twitter.com/arahansa
http://adunhansa.tistory.com/
사이트 : http://100coding.com/go
ABOUT
CONTACT
SOURCE
1
2. 1. 작성자 소개 2
아라한사
-------------------------------------------------------------------
평소 정리를 즐겨합니다. 한 때 동영상강좌도
만들다보니.. 비실명과 만화캐릭터를 쓰네요
양해 부탁드립니다 ㅎㅎ
3. 목차 3
• 개요 – 4
• 환경설정 – 6
• 스프링부트 설정 - 14
• 스프링부트헬로월드 – 20
• 하나의 클래스 – 26
• 하나의 클래스 CRUD – 34
• 페이징 처리 – 38
• 일대일관계매핑 – 43
• 일대다매핑 – 47
• 다대다매핑 - 55
-----------------------
4. 개요 4
• 에.. 주로 독학을 하다가, 한계를 느껴서
2015년부터 스터디에 참여을 하게 되었습니다.
김현기님이 운영하시는 TDD,JPA 스터디 , 오창화님이 운영하시는 pooh 스터디 참여중^^;
• 아무래도 다른 개발환경, 다른 경험을 가지신 분들이 오시다보니
스터디에서 쓰게 될 JPA 가 낯설은 분도 계신 것 같기도하고..
• JPA 가 저도 마찬가지로 봐도봐도 아직 낯설어서^^;
정리를 한번 PPT로 해볼려고 합니다.
(제가 정리를 제대로 한 게 없더군요.)
• 일단은 기본 객체매핑과 관계 매핑부터 시작합니다~
간단하고 부족하고 틀린 곳이 있을 지 모릅니다. 주로 제가 혼자 공부하다보니…;;
그리고 심화 정도까지도 안 갑니다;; 항상 급하게 만드느라;;;
아..아무튼~ 자.잘 부탁드립니다! ㄷㄷ
5. 개요2 5
• 아참 김영한님께서 JPA 서적 집필중이시라고 합니다.
그리고 책 중간중간에서 JPA 를 다루는 서적들이 많이
있습니다. (예를 들자면 최범균님의 스프링 같은
책들 말이죠^^)
• 그밖에도 국내에 나온 서적도 몇권 있습니다. ;
기타 링크는 여기에..;
http://opentutorials.org/course/1519
• 본 PPT 는 기초적인 내용을 다룹니다.
7. 프로젝트 생성 7
• 왠만한 것은 Next를 해주다가, 아래의 창에서 maven-
archetype-webapp 그리고 두번째창에서 아티팩트ID는
마음대로 적어주세요^^
8. 이렇게 에러가 납니다? -> 8
• 대략 이런 화면이 나오는데(하단 우측, 제목 글씨 옆에 이미지 참고해주세요) ,
메이븐에서 갓 구워낸 녀석이 에러를 내는 것이죠~ 일단 에러부터 잡아보도록
하겠습니다. 프로젝트를 우클릭하시면 properties 가 나옵니다. (단축키로
alt+enter를 누르시고)
먼저 project factes 에서 java 버전을 컴퓨터 버전에 맞게(저는 1.8) dynamic
web module 은 3.0 이상으로 맞춰줍니다~
9. 이렇게 에러가 납니다? 9
• 하지만 다음과 같이 에러가 나는 경우가 있습니다
-_-…esc를 눌러주시고 프로젝트를 alt+shift+w 를 눌러주시면 다음과 같은
화면이 뜨는데 네비게이터로 들어가셔서
org.eclipse.common.project.facet.core.xml을 고쳐주도록 합시다.
• 파일 여시면 java 속성과 jst.web 속성이 있습니다.
이부분이 자바버젼과 web모듈 버전이므로 바꿔주시면 됩니다
10. 그래도 에러가 납니다? 10
• 예. 에러가 납니다;; 이번엔 JRE 버전을 바꿔주고
tomcat을 불러와주도록 해야겠습니다. Jre를
먼저 Edit 를 해주시고 1.8 버전으로 바꿔줍시다.
11. 그래도 에러가 납니다? 11
• Jre가 변경이 되었으면 이번엔 server runtime을
추가시켜줍시다. Add library 를 누르시고 server runtime을
추가해주시면 tomcat을 불러와주시면 됩니다. 여기서 자세한
내용은 생략 ^^
12. 일단 프로젝트 기본설정^^; 12
• 일단 깨끗한 프로젝트가 생성이 되었군요.
이걸로 학습을 진행해보도록 하겠습니다^^;
• 원래는 스프링에서 jpa를 쓰려면 설정이 또 복잡한게 많은데.. 본
슬라이드의 목적은 jpa에 익숙해지는 것이므로 spring boot를
이용해서 복잡한 설정은 빼보겠습니다.
13. 아참.. 13
• 아.. 요즘에 gradle, 인텔리J, thymeleaf 에
익숙해지려고 하는데..
• 이상하게 인텔리J에서 spring boot를 적용시켜서
jsp뷰파일을 열 때 404 에러가 납니다.
• 똑같은 프로젝트를 이클립스에서 열면 이클립스에서는
잘 되구요.. 프로젝트의 문제가 아니라 제 인텔리J
문제인것같습니다.
아시는 분은 답변좀 굽신굽신;;
14. 자 이제 Boot 를 적용시켜볼까요? 14
• 자, 모든 소스의 근원은 공홈입니다. 공홈
http://projects.spring.io/spring-boot/ 에서 소스를 한번
받아보겠습니다.
다음의 소스를 pom.xml 에 적어줍시다. (프로젝트 제일 하단 위치)
• 오른쪽 화면같이 잠시 의존성 파일들을 받아주는 시간 걸립니다. 물마시고
오겠습니다.
15. 메이븐이 아파요 15
의존성 파일들을 다 받으면
다음과 같이 에러가 나는 경우
가 있는데, 메이븐설정 pom.xml 가
up-to-date 가 아니니 업데이트
해달라는 말이군요.
프로젝트를 눌러주시고 alt+f5
눌러주시면 말끔해집니다^^
16. 메이븐이 아파요 16
• 가 아니라..다음과 같이 에러가 뜨는 군요;;;
• Facet 설정등을 메이븐에서 적어주지 않았기
때문에 나오는 것같습니다. 메이븐을 업데이트하니
에러가 나는 거군요. Pom.xml 을 다시
설정해줍시다.
17. 메이븐이 아파요 17
• 우선 메이븐 설정에 다음과 같이 메이븐 컴파일러
플러그인을 적용해줍시다. 소스와 타겟속성에 자바버젼을
맞춰줍니다. (아.. 중간에 properties 괜히 넣었군요;;
삽질죄송 ㅋ 이 부분은소스는 이따가 링크 나옵니다~;)
18. 메이븐들이 아파요 18
• 그리고 main/webapp/WEB-INF/web.xml 파일을 보시면
다음과 같이 되어있습니다.
• 예 이것을 기준으로 매번 facet 속성이 초기화되는 것같습니다.
이것도 다음 그림으로 바꿔줍시다.
19. 방긋방긋 프로젝트 19
• 그럼 다음과 같이 이제 프로젝트를 누르고 아무리 alt+f5 메이븐
업데이트를 눌러도 에러가 나지 않습니다.. 고쳐준 것은 pom.xml 과
web.xml 입니다. 소스는 다음과 같습니다.
• Pom.xml
https://github.com/arahansa/learnspringdatajpa/blob/4b1e6238cc6fe6
9e2be1f3c7ef3dc7517db40a08/pom.xml
• Web.xml
• https://github.com/arahansa/learnspringdatajpa/blob/4b1e6238cc6fe69e2b
e1f3c7ef3dc7517db40a08/src/main/webapp/WEB-INF/web.xml
20. 다시 스프링 부트 확인. 20
• 자, 이제 프로젝트가 방긋방긋 어느정도 안심이 되니 스프링부트로 헬로월드부터
띄워놓고 작업해보도록 합니다. 다음과 같이 소스를 적어줍시다.
여기(http://projects.spring.io/spring-boot/) 서 복붙하시면 됩니다.
21. 헬로월드 21
• 다음과 같이 Run- run as- spring boot app 을
눌러줘보도록 하겠습니다. 다음과 같은 헬로월드가
보입니다.
22. 스프링부트의 설정은. 22
• 음 헬로월드가 뜹니다. 참 신기한 세상입니다.
• 어노테이션이 2 개 달리긴 했는데.. 부트에 관한 자세한
설명은 생략하도록 하겠습니다. (어차피 이따가 또
바꿉니다^^)
23. 자, 그 다음으로 해볼일은 Jsp 파일 열어보기! 23
• 여기선 스프링부트의 설정을 약간 다뤄봅니다.
– 우선 보시는 것처럼, java 폴더에서 controller, domain,
repository 패키지를 만들어줍시다.
– 그리고 다음처럼
기존의 sampleController 위에 ComponentScan 을 붙여줘보도록
하겠습니다. Controller 패키지의 컴포넌트들을 읽어보겠단 뜻입니다.
– (나중에 다시 또 바뀝니다.. 제가 중간에 삽질했네요 ㅋㅋ : 미래에서 적은 글)
24. 컨트롤러 패키지 설정과 application.properties 설정 24
• 다음과 같이 controller 설정을 해주도록 하겠습니다. Controller 패키지 안에
넣어줍시다.
• 이렇게 되면 jsp 파일을 연결해줘야 하는데, 다음과 같이 설정해줍니다.
Resources 폴더에 application.properties 란 파일을 만들어줍니다. 이 파일은
부트의 설정들을 적어주는 파일입니다. 보시는 것처럼 spring.view.prefix와
suffix 설정을 잡아주면 webapp폴더를 기준으로 /WEB-INF/jsp/로 들어갑니다.
Jsp파일 위치의 최종 주소는 /WEB-INF/jsp/ 와 컨트롤러에서 적어준 test/test
그리고 suffix 가 들어간 .jsp 가 들어가서
webapp/WEB-INF/jsp/test/test.jsp 가 되게 됩니다 .
25. Jsp 설정 완료! 25
• 다음과 같은 구조로 설정해주고 boot를 다시 켜보도록
하겠습니다. 처음에 켰던 대로 다시 켜주시고 test 로 접속하시면
hello test 잘 뜹니다^^ (jsp 파일은 대충 만..만드세요 무책임;)
26. 자, 이제 spring-data-jpa 를 들어가볼까요? 26
• 자 먼저 pom.xml 을 다음과 같이 추가해주겠습니다.
• 공홈소스에서 퍼오겠습니다. 밑의 설정들은 data-jpa
와 h2 내장 database를 쓰겠다는 얘기입니다.
• https://spring.io/guides/gs/accessing-data-jpa/
27. 앗 그리고 잠시 리팩토링?^^; 27
• Hello package의 SampleController 가 있습니다. 클래스 상단의 어노테이션을 다음과 같이
바꿔줍시다. ㅠㅠ (삽질 죄송 ㅎ; )
• 패키지를 다음과 같이 바꿔줍시다. ㅠㅠ
• SampleController 가 com.example 에 있고 나머지 controller 와 domain, repository를
com.example 밑에 넣어줍시다.ㅠㅠ (삽질죄송 ㅋ)
28. DB서버 접속 환경 설정 28
• 메모리 DB를 써보도록 하겠습니다~~ 다음과 같이
spring.datasource로 시작하는 속성들을 설정해주도록 하겠습니다.
• Datasource.url 을 메모리DB로 사용하되, 스프링부트가 띄워진
상태에서 나중에 DB확인을 할수있도록 tcp localhost로 합니다. (공홈
참고함)
소스는 다음과 같습니다.
• https://github.com/arahansa/learnspringdatajpa/blob/f957a2036b2998239ea59d746480e058d3c
5f3ee/src/main/resources/application.properties
29. Domain 클래스 작성 29
• 다음과 같이 도메인클래스를 만들어 주도록 하겠습니다. 소스는 여기에
있습니다~. 아 이늄은 오른쪽 사진 참고해주세요^^ㅋ 그냥 일단 간단히;;
• https://github.com/arahansa/learnspringdatajpa/blob/58f0305d5a08c94b07a16f74ecf84d34a251
5c33/src/main/java/com/example/domain/JustOne.java
30. 리파지토리 작성 30
• 리파지토리를 작성해보도록 하겠습니다. Spring-data-Jpa의 매직입니다.
이렇게 해주는 것만으로 간단한 CRUD 가 완성이 되었습니다.
신기합니다^^; Data jpa의 repository 인터페이스를 상속하고 있습니다.
이런 계층이 있다는 것만 우선 보고 갑시다.
31. 컨트롤러 작성 31
• 그럼 이제 컨트롤러를 간단히 만들어주도록 하겠습니다.
• https://github.com/arahansa/learnspringdatajpa/blob/58f0305d5a08c94b07a16f7
4ecf84d34a2515c33/src/main/java/com/example/controller/JustOneController.j
ava
• /one 으로 접속했을 때 그냥 db저장만 해두고, “test/test”로 리턴하러 가보겠습니다.
32. 32
• 자 이제, 다시한번 Boot 를 가동시켜보도록 하겠습니다. Localhost:8080/one
으로 접속하면 db 저장 작업이 동작하겠습니다. 하지만 확인을 어떻게 할가요?
여기선 우선 직접 확인해보겠습니다. 이클립스내에는 data source explorer 라는
툴이 있지만, 직접 공홈 홈피에서 h2 를 다운받아 실행해보겠습니다.
다운받아 설치하면 다음과 같은 h2 console
을 실행할 수 있습니다.
33. 내장DB 내용 확인하기 33
• 이제 콘솔로 접속을 하는데, 아까 application.properties 의 주소에
맞춰서 다음과 같이 jdbc url 을 접속해주도록 하겠습니다.
• 음 그럼 저것과 같이 just_one 이 보이는 군요~ 클릭을 해주면 select
문이 완성되고 한번 내용을 봅시다. 음 뭐~~ 예상한 대로 나온
것같습니다. +를 계속 누르셔서 칼럼들이 어떻게 만들어졌는지
확인해봅시다~
34. 테스트 케이스 만들어보기~ 34
• 자 이제 하나의 속성이 어떻게 되가는지 봤으니,
테스트 코드를 작성해서 어떻게 crud 가
동작하는지 알아보도록 하겠습니다
JustoneRepository
를 여시고,
Ctrl+N 하셔서
Test로 검색
Test case 를
만들어보겠습니다
35. 테스트 케이스 만들어보기~ 35
• 아.. 그리고 이런 창(우측상단)이 뜨는 군요~음.. 당장 이걸 누르고
싶은 생각도 있지만 스프링테스트로 한번 작성해보겠습니다~~
그러기 위해선 pom.xml 을 수정해야겠군요~~ 우측하단의
의존성설정을 pom.xml에 넣어줍시다.
36. 테스트 케이스 작성~ 36
• 예. 그러면 다음과 같은 테스트 케이스가 생기며, Junit test case 로
실행시켜주시면 다음과 같이 우선은 실패가 뜰 것입니다. 이제 CRUD 를
만들어볼까요. 우선은 fail 이라는 메소드로 인해 당연히 실패합니다.
37. CRUD 작성 37
• 다음과 같이 바꿔주고 읽기쓰기삭제수정에 관한 테스트를 작성해줘봅시다~~
자세한 내용은 주석에.. 소스는 여기에.
https://github.com/arahansa/learnspringdatajpa/blob/d4de0b2e2c46f835727e95628cf545d516f097d4/src/test/java/com/
example/repository/JustOneRepositoryTest.java
38. 페이징 처리 1 38
• 자 CRUD 를 해봤으니 이번엔 페이징을 해보도록 하겠습니다.
Pagerequest를 날리는 것이 여기서 핵심인 것같군요. 40개정도
저장해보고 그중에 10개를 뽑아와서 생각한 것을 뽑아왔는지 검사를
해보도록 하겠습니다~
40. 특정 메시지로 가져와보기 40
• 이번엔 간단한 검색을 해보도록 하겠습니다. 특정 메시지를 가지고서 찾아보도록 하겠습니다~
JustOneRepository 에 좀 더 적어주면 됩니다
• 객체를 적어주시고 findBy를 하시고 자동완성 기능을 이용하시면 다음과 같이 필드를 자동으로
읽어서 무엇을 선택할지 보여줍니다.
테스트 소스는 여기에 ^^
https://github.com/arahansa/learnspringdatajpa/blob/0c0d1504cd40935d6004ee26e261b6d447baa326/src/test/java/com
/example/repository/JustOneRepositoryTest.java
41. 특정 조건 추가해보기. 41
• http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-
creation
• 이곳을 참고해봅시다. 여기서는 특정날짜 이전, 특정 메시지를 뽑아보도록 하겠습니다.
저렇게 여러가지 조건을 넣어서 리스트로 뽑아줄 수가 있습니다.
• 다음 페이지에 한 페이지로 데이터를 집어넣고 뽑아서 테스트를 해보겠습니다.
(소스가 좀 안 이쁘군요;; 날짜는 보통 joda time 아니면 java8 을 써야한다고
합니다.)
• 소스는 이곳을 참고해보세요~
https://github.com/arahansa/learnspringdatajpa/commit/e4468f0df0c
dc0b97e6656d5bfa22a861c133c99
44. 1:1 매핑 44
• 1:1 매핑을 한번 만들어보겠습니다. 가장 간단하게 다음과 같은 구조로 가보겠습니다.
회원이 있고, 회원세부정보를 가지고 있다고 가정합니다. 두 개의 테이블은 1:1
매핑이 되어있습니다. 최종 목적은 이런 화면을 보고 싶은 것입니다. 패키지 구조는
다음과 같이 가져갑시다. (이제부터는 패키지를 테마별로 해서 그 안에 다
집어넣습니다;; 으 애초에 이럴걸 그랬군요;;)
45. 1:1 매핑 클래스 작성 45
• 다음은 1:1 매핑 예제입니다. 양쪽에서 서로의 객체를 필드지정해주면서 @onetoone 어노테이션을
붙여줍시다. @JoinColumn 에서 name 으로 해주면 매핑하는 테이블 외래키의 컬럼명을 지정할
수 있습니다.
Onetoone 매핑으로 상대 테이블의 주키를 외래키로 가져오는 것을 볼수 있습니다.
mappedBy에서상대쪽 필드로 매핑(?) 되어
안기는(?) 것을 볼 수 있습니다.
46. Cascade란 무엇인고? 46
• 여기서 또 처음 보는 옵션이 나오는데 Cascade 란 것입니다. 이것은 무엇일까요?
저는 왠지 도미노가 떠오릅니다. 소스를 보면서 얘기할까요~ (컨트롤러 주목~)
이런 경우 컨트롤러에서 /member 에 접속하면 Db에 저장을 합니다.
• 저장을 하는 것은 member 만 저장을 하는데, member_detail 테이블도 값이 저장되어있는 것을
보실 수가 있습니다. 이렇게 하게 만들어주는 것이 바로 cascade(우리말로는 작은폭포?) 입니다.
• 매핑이 서로 되어있기 때문에 member에 set설정으로 객체를 지정해주는 것만으로도 연관된
객체들이 DB에 같이 저장이 됩니다. 기본값은 아무 cascade 작업을 안하는 것이고, Member의
cascade설정에는 all 로 되어있으며 cascade 타입엔 여러 속성이 있습니다만 이것은 책이나
API를 참고해주세요 (무책임) Fetchtype은 다음 장 일대다매핑에서 설명해보겠습니다~
47. 일대다 매핑 47
• 일대다인 경우가 어떤 경우가 있을까요. 간단히 생각해보자면, 대학 하나와 학생
여러명이 있는 경우를 생각해보기로 하겠습니다. ㅎㅎ
일인쪽에서는 @OnetoMany 를 여러명인쪽(학생)에서는 @ManyToOne 을
적어주도록 하겠습니다.
• targetEntity 는 Many쪽 해당 클래스를 명시하는 것으로 보여집니다^^;
FetchType은 일단 lazy 모드로 하겠습니다.
• 일대다매핑 총 소스는 여기를 참고해주세요~
(https://github.com/arahansa/learnspringdatajpa/commit/b5266aa4b0
2c5d39a96768b318918eaaff3cbb9e )
48. 일대다매핑 한번 보기 48
• 다음의 리파지토리를 같은 패키지안에 만들고 이제 그럼 컨트롤러 작업을
해보겠습니다. 음.. 사실은 테스트 케이스를 만들어 학습하는게 좋은 것같지만 여기선
컨트롤러를 만들고 직접 한번 어떻게 Fetching 이 이뤄지는지도 한번 보겠습니다.
Student 를 간단하게 만들기 위한 생성자도 만들어줘야겠군요.
49. 컨트롤러의 선언!~ 49
• 음.. 뭐 흐름은 크게 바뀐 것이 없습니다. 학생리스트를 만들어서 University 객체에
set 해주고 저장합니다.
50. 컨트롤러의 선언!~ 50
• application.properties 파일에 다음과 같은 줄을 추가해줍시다.
가동되는 Sql문을 볼 수 있게해줍니다.
• 아 컨트롤러에 이것도 마저 넣어줍시다. 방금 전 경로로 DB세팅을
해놓고서 여기서 불러와보는 것입니다.
51. 일대다매핑 밑작업 51
• 아. University 객체에 이것도 추가해줍시다.
학생들이랑 같이 출력하게 해주는 것입니다. 모든
준비 완료되었습니다~
52. 52
• 자 이제 다시 부트를 가동시키고, 다음주소로 들어가면 이런 화면이 나옵니다. 링크를
눌러서 university check 를 해봅시다. 이클립스 콘솔에서는 다음과 같은 화면이
나옵니다. 저장이 cascade 되어서 student 에 된 것을 볼 수가 있습니다.
• 다음의 경로를 입력하면 그 밑에 이런 sql문이 뜨면서 university 만 가져옵니다.
Student 테이블에는 접근하지 않는 것을 볼 수가 있습니다.
53. 53
• 하지만 이 링크에 접속하면? 짜잔! 다음과 같이 Lazy
loading 에서 Students 리스트를 불러오는 것을 볼 수가
있습니다. 이것이 바로 FetchType.Lazy 모드 덕분입니다.
54. FetchType 이란 무엇일까요? 54
• 자, 스택오버 플로우의 얘기에서 잠깐 설명하자면
• 대학목록을 불러올 때, 학생들(몇천 몇만 몇십만?) 다 불러올려면 부하가 엄청날 것입니다. 이럴때
좀 느긋하게 레이지 로딩하면 좋다 이겁니다?!(무책임간단한 설명;;) 자세한 것은 책과 공홈 참조
하시면 됩니다;;;; Eager 모드와 Lazy 모드가 있습니다.
• (http://stackoverflow.com/questions/2990799/difference-between-fetchtype-lazy-and-eager-in-java-
persistence)
55. 다대다매핑 55
• 다대다 매핑을 생각해봅시다. 책과 카테고리가 있다고 합시다.
정치,외교/정치일반/정치비평에세이 모두 MB의 비용을 가지고 있다고 하고, 정치비평
카테고리에서는 여러가지책이 있습니다.
• 하나의 책이 여러 카테고리를 가질 수 있고, 하나의 카테고리에서도 여러 책을 가질
수 있습니다. 다대다매핑입니다. (이 예시가 잘 맞을진 모르겠습니다. 지금
새벽3시여서 빨리 마치고 일단 잠이나 자려고요;; 소개되는 API 만
봅시다;;(무책임))..
56. 56
• Book 에서 주키를 뽑아오고, Category에서 주키를 뽑아 이런
테이블이 만들어집니다. 소스는 다음과 같습니다.
https://github.com/arahansa/learnspringdatajpa/comm
it/a1358080790aec3fbc25864b920492ca7ddc7ea8
57. 다대다매핑 57
• Book 클래스와 Category 클래스를 다음과 같이 설정해줘봅시다.
게터세터와 생성자는 생략;; 소스에 나옵니다; ㅎ
• 두 개의 테이블이 참여하여 다른 하나의 테이블을 만들 것입니다.
생성되는 테이블명은 BOOK_CATEGORY 가 될 것이고,
내가 참여하는 쪽에서는 joinColumns 로 우선 주키명을,
상대쪽 테이블은 inverseJoinColumns 로 주키명을 적어줍니다.
일단 이 정도로(?) .. 간결하게 해봅시다.
58. 다대다매핑 설정 58
• 이제 테스트 클래스를 작성하러가봅시다. 흠.. 여기서부터는 메모리 db 가 아니라 로컬에 저장을
하고 한번 보기로 하겠습니다. 다음과 같이 ActiveProfiles 어노테이션을 주고 test모드로
해봅시다.
• 그럼 다음 부분의 application-test.profiles 란 부분의 설정들을 테스트할때 적용하게 됩니다.
다음과 같이 한번 적용해줘봅시다. Ddl-auto 어쩌고 하는 옵션은 하이버네이트가 테이블을
생성하면서 생성만 할 것인지, 생성하고 지울 것인지 하는 옵션입니다. 자세한 것은…역시 API 혹은
책을 참조해주세요^^; server.port는 톰캣이 구동되면..(음 근데 적어줄 필요가 없나?ㅎ;) 가동될
포트번호를 설정하는 것입니다..;
59. 59
• 다음과 같은 사진을 참고해서 정치비평에세이 부문에 책들을
배정해보도록 하겠습니다. 테스트코드를 짜고서 데이터베이스를
직접 확인해보고 싶습니다. 짜고서 돌리면~ 우측 사진같이 배정된
것을 볼 수가 있습니다.
60. 60
THANK YOU !
arahansa
------
------
페북 : https://fb.com/me.adunhansa
트위터 : https://twitter.com/arahansa
블로그: http://adunhansa.tistory.com/
사이트 : http://100coding.com