2011-12-09 4 views
1

여러 (3 개 이상) 테이블 케이스에서 JPA 사용에 대한 피드백을 보내고 싶습니다.JPA 사용 가이드 라인/Eclipselink/JPA 엔티티 생성기

  1. 어떻게 여러 개의 조인 된 테이블에서 레코드를 검색합니까? JPA Join 문을 사용하거나 컬렉션 을 검색하고 다음 키 집합을 반복하여 가져 오는 등의 작업을 수행 할 수 있습니까? 두 번째 방법이 선호되는 방법 인 것처럼 보이지만 실제 고통과 비효율적입니다.

  2. eclipselink가 관계를 생성하는 방식은 계속되는 캐스케이드가 있다는 것입니다. 그 외에도 간단한 외래 키조차도 간단한 정수 ID가 아닌 obect로 설정됩니다. 환언가 X.fk_of_table_Y를 추출하여 I는 두 가지 방법

X.getFKTableY(). getFKtableY()를

첫번째 기능은 매핑 된 클래스의 객체, 및 상기 제를 반환 호출해야 정수를 반환합니다. 죄송합니다 너무 비효율적이지 않습니까? 왜 내 테이블의 ID 만 원할 때 다른 테이블에서 객체를로드해야합니까?

어떻게 가나 요?

  1. eclipselink에서 생성 한 방법을 사용 하시겠습니까? 아니면 일반적으로 코드를 직접 코딩합니까? 이것은 기본적으로 (1) jsut과 동일합니다.이 글은 eclipselink 문맥을 요구합니다.

  2. 코드를 생성하는 데 EclipseLink 외에 어떤 도구가 있습니까? 필자가 JPA join을 사용하여 관계에 대한 쿼리를 작성할 수있는 경우, EclipseLink가 수행하지 않을 엔티티 파일에서 관계 매핑을 제거하고 싶습니다. 엔터티 클래스 만 생성하지만 관계는 생성하지 않는 도구가 있습니까?

  3. Eclipselink를 통해 야간 기준으로 (또는 db가 변경 될 때마다) 엔티티 생성을 자동화하고 싶다면 무엇을해야합니까? 소스 수정?

내 영어를 용서해주세요. 조금 더 잘 쓸 수 있습니다.

답변

0

답장을 드려 죄송합니다. 전화에서 온 전화입니다. 먼저, EclipseLink에서 FK의 정수 ID와 객체 자체를 다른 속성으로 가질 수 있습니다. 단순히 동일한 열 이름을 지정하고, 그 중 하나만을 갱신 가능 및 삽입 가능으로 표시하십시오. 속성 중 하나와 관계를 설정할 수 있지만 둘 다를 설정할 수는 없습니다.

둘째로 엔티티 매핑과 DAO 객체를 사용하여 엔티티에 액세스하기 위해 복잡한 JPA 쿼리를 사용합니다. 차이점은 여러 조인과 집계 함수에 대한 쿼리를 사용하거나 프리 페칭이 필요한 경우 엔티티 매핑을 사용할 때입니다. 엔티티 그래프를 횡단합니다. 그럼에도 불구하고 모든 곳에서 벤치마킹이 필요합니다. 엔티티 매핑으로 분해 될 때 더 빠른 (60ms 대 300ms) 복잡한 쿼리를 사용했습니다.

+0

감사합니다 ... 미안하지만 내 평판은 당신에게 긍정적 인 포인트를 줄만큼 충분하지 않습니다. 몇 가지 답변을 기다리고 그 중 하나를 투표 할 것입니다 :) – SQC

+0

Tassos, 어떻게 두 개의 열을 만들 수 있습니까? Netbeans에서 eclipselink를 사용하고 있지만 변경할 수있는 옵션이있는 경우이를 설치해 드리겠습니다. 다시 식히고 시도하십시오. 내가 그 도구를 잘 모르기 때문에 나는 어떤 옵션도 보이지 않는다. – SQC

+0

당신이하는 일은 당신이 가지고있는 것입니다.'int personId'와'Person person'을 멤버로 사용하지만,'@Column (name = "PERSON_ID")'와'@JoinColumn (name = "PERSON_ID")'를 사용하여 동일한 데이터베이스 컬럼 이름을 부여 할 수 있습니다. 그러나 두 속성 중 하나에'updateable = false, insertable = false'를 추가해야합니다 (개인적으로 int를 선호합니다). –