BLOG main image
분류 전체보기 (313)
교육 (13)
NEIS (6)
Edufine (0)
Programmer (5)
Android Programming (1)
Internet W3 (18)
JAVA Programming (9)
JSP/Servlet (1)
Framework (7)
Spring For Beginner (4)
eGovFrame (10)
MEAN Stack (2)
NodeJS (5)
SublimeText (30)
SublimeText_Tips (18)
Eclipse (16)
JavaScript (8)
jQuery (12)
jQuery_tips (1)
Ajax (3)
DWR(Direct Web Remote) (4)
JSON(JS Object Notation) (4)
Oracle (2)
MySQL (28)
OS (16)
Download (3)
Life (10)
Favorit Site (1)
Books (2)
Healthy (1)
Stocks (1)
HTML5/CSS (1)
Python (4)
Security (7)
CISSP (0)
Ruby On Rails (5)
일기장 (0)
영어 교과서(중2) (3)
알고리즘 (0)
Go Lang (3)
VB 2010 (12)
C# (1)
정보보안기사(네트워크보안) (0)
업무 활용 엑셀 (11)
틈틈이 활용팁 (14)
하루 하루 살아가며 ……. (2)
기술 (1)
파이썬 & 데이터분석 (1)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
2015. 7. 19. 20:21

** Hibernate(ORM) history

- 기존 RDB와 OOP 사상이 맞지 않는다는 것에 대해 다들 고민한다.

- EJB로 가면서 Entity Bean을 만들면서 RDB와 OOP접목에 길이 생김

- 근데 실제 프로젝트에서 적용하기 무리

- 좀 쉽게 가자는 의도에서 OBJ, Hibernate 등 opensource 진영에서 RDB - OOP mapping framework 만들음

- OpenJPA, TopLink 등 상용프로그램도 나온다.

- 이때 뻘쭘해진 SUN에서 우리가 RDB - OOP Spec 만들어 볼까 하고 JDO 발표했다가 개발자들한테 욕먹고,

정신 못차렸단 소리 들음

- EJB 2.0 -> 3.0으로 가면서 Entity Bean을 포기하고 JPA(ORM) spec을 만들음

- Hibernate도 JPA Spec 기반임

 

 

** hibernate 객체 상태와 method

- transient : 그냥 메모리상에 생성된 객체, DB에 저장되지 않았다.

- persistent : DB에 저장되어 있어서 영속성이 확보된 상태

- detached : 이거 뭔지 잘 모르겠음. persistent 객체 가져온 후 session close 시킨 이후 객체 말하나?

 

- 가끔 list로 collection 가져와서 iteration 돌 때 session close 됐다고 에러 떠서 OpenSessionInView로 설정한 일이 있었는데..

그게 혹시 detached 상태의 객체를 iterate 돌아서 그런 걸까?

 

 

** Hibernate mapping

- 방향성 중요하다.

 

- <one-to-one> : 1:1 => 한명의 Person은 한명의 배우자만 갖을 수 있다.

- <many-to-one> : 1:n => 한명의 User는 한개의 Address를 갖는다. / 하나의 Address는 여러 User가 갖을 수 있다.

 

- <one-to-many> : 1:n => 한명의 Person은 여러개이 Book을 갖는다 / Book은 한명에게만 소유된다.

 

 

  - <many-to-many> : n:n => 여러명의 Person이 여러개의 House를 갖는다.  

 

 

- Table 구조로 보면 <one-to-one>이나 <one-to-many>나 같은 설계일 텐데 객체에서는 다른관계

 

** Hibernate 실습함

- simplewiki에 JDBC Templete로 구현되었던 것을 Hibernate로 교체함

 

** ibatis가 하는 일

- datasource 관리함

- sql문 자기가 갖고 있음

- parameter setting 지가 함 => Spring JDBC Templete에서 클레스로 만들 수 있었음

- excute

- result mapping 지가 함 => Spring JDBC Templete에서 클레스로 만들 수 있었음

- connection close 지가 함

 
반응형