Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

JPA에서 class를 통해 테이블을 정의할때 몇가지 규칙이 있습니다.

항목DBJPA객체설명
Table(Class)sample_tableSampleTable헝가리 표기법을따름
Field(member)samplenamesampleName카멜표기법을 따름




db가 설치된 os에따라 대소문자를 구분하는 경우가 있기때문에

...

Code Block
languagesql
themeEmacs
collapsetrue
-- 사용자생성
INSERT INTO `spring`.`user`
(`id`,
`email`,
`name`)
VALUES
(<{id:}>,
<{email: >,
<{name:}>);

-- 사용자 조회
SELECT * FROM user

JPA를 활용했을때 장점은, 일괄적인 객체접근을 통해 데이터모델을 핸들링 할수가 있다란 것이며

일반적으로 소스와 통합이 되기때문에  SP가 필요없이 형상관리가 될수 있다란것이며  

JPA의 장점이긴하지만, 모든곳에 적용되기에는 한계가 있습니다.

데이터 모델이 고정적이지 않고 복잡한 SQL문 혹은 다수개의 조인이 사용이 되는 데이터 추출과 같은 프로세스에서는

그냥 네이티브한 SQL 사용이 더 적합할수도 있습니다.



JPA Relation

일반적으로 DB의 테이블은 하나의 테이블에 모든 정보를 포함하지 않고, 데이터의 효율적인 관리를 위해서 몇개의 테이블구조로

나누게 나누어 관계를 형성하게 됩니다.  이렇게 구조적으로 나뉜 테이블을 하나의 테이블정보인것처럼

정보를 머지를 하려면  SQL문에서는 JOIN문으로 해결하며, 하려면 JOIN을 통해 테이블을 지배해야합니다.

JPA 객체처리모델에서는 SQL문의 JOIN문을 직접적으로 사용하지 않고, 동일한 효과를 내려고 합니다.

...

Code Block
languagejava
themeEmacs
class User{
	int id;
	string name;
	string email;
}


class ClickLog{
	int clickid;
	User user;
	string  //데이터베이스에서는 userid가 저장됨
	string clickurl;	clickurl;	
}




TABLE User{
   int id
   varchar name
   varchar email   
}


TABLE ClickLog{
	int clickid
	int userid -- user id를 바라보는 외래키
	varchar clickurl;
}


  • 프로그래밍모델에서 객체는 일반적으로 상속또는 포함관계를 통해 단방향 접근이 일반적입니다.. ( ClickLog→ User )
  • 데이터 베이스는 연관관계와는 별개로,  양방향 접근에 자유롭습니다. ( User ↔ ClickLog )
  • 프로그래밍 모델에서는 상속의 개념이 존재하여 다양한 객체를 포함할수가있습니다. 데이터베이스 에서는 상속개념이 없으며 리스트와같은 데이터Type을 포함할수 없습니다.
  • 데이터베이스에서는 상속의 개념을, 외래키를 통해 관계형성을 하며 논리적인 관계를 형성할수가 있습니다.

...