2008-09-18 2 views
3

상당히 큰 J2EE 프로젝트에서 EJB 3를 사용하고 있습니다. 기본적으로 Netbeans는 엔티티 bean의 영구 공급자를 TopLink로 설정합니다.어떤 EJB 3 프로 바이더를 사용해야합니까?

  • 최대 절전 모드
  • 는 OpenJPA 제공 업체 지속성 사용하는 것을 선호 할

를 다음 또는 새로운 지속성 라이브러리를 추가 중 하나에 공급자를 변경할 수있는 옵션이 있습니다 ? 다른 공급자를 사용하면 어떤 이점이 있습니까?

TopLink는 좋은 것처럼 보이지만, 캐싱 등을 제어하는 ​​방법에 대한 많은 문서를 찾을 수 없습니다. 도움이된다면 많은 도움이 될 것입니다.

답변

7

Theres는 내가 사용하는 것이 좋습니다 것 두 JPA 제공자 :

당신은 내가는 EclipseLink를 사용하는 거라고 표준 JPA에 충실하려는 경우

. TopLink Essentials는 JPA 1.0의 참조 구현이지만 EclipseLink는 기본적으로 TopLink Essentials 코드를 상속 받았으며 JPA 2.0의 참조 구현이 될 것입니다 (제공되는 Glassfish V3와 함께 제공되며 2009 년 5 월 JavaOne에서 예상 됨). TopLink Essentials는 오라클의 상용 TopLink 제품 중 다소 장애가 있지만 EclipseLink는 기본적으로 TopLink의 모든 기능을 갖추고 있습니다.

다른 선택은 분명히 최대 절전 모드입니다. 그것의 널리 사용하고 성숙하지만 내가 본 것을 무료로 문제가되지 않습니다. 예를 들어, 마지막으로 나는 Hibernate가 일대 다 많은 열망하는 관계를 갖는 엔티티에 문제가 있다고 보았다. 나는 Hibernate가 EclipseLink의 배치 질의 힌트와 동등한 가를 알지 못하지만, 이런 종류의 문제를 다루는 매우 유용한 기능이다.

최대 절전 모드는 물론 표준 JPA도 지원합니다. Hibernate의 가장 큰 장점은 그것이 작동하는 방법에 대한 질문이 있다면 구글 검색이 당신에게 답을 줄 가능성이 있다는 것입니다.

저는 솔직히 위의 두 제공자 이외의 것을 고려하지 않았습니다.

+2

가 왜는 OpenJPA을 고려하지 않을 있습니다. 각 구현에는 장점과 단점이 있습니다 ... – b3bop

2

난 강력하게 다음과 같은 이유로 최대 절전 모드를 추천 할 것입니다 :

  • 가장 널리 사용되는 자바 세계에서 오픈 소스 퍼시스턴스 계층을 존중; 거대한 활성 커뮤니티 및 대용량 미션 크리티컬 애플리케이션에서의 많은 사용.
  • Hibernate는 여전히 훌륭하게 작동하므로 Spring과 같은 다른 애플리케이션과 다른 경로로 이동하려면 J2EE 나 특정 벤더에 자신을 묶지 않아야합니다.
2

나는 Hibernate가 문서화가 잘되어 있고 다양한 캐싱 기술로 잘 지원된다는 것을 발견했다. JPA 컨텍스트가 아닌 다른 컨텍스트에서는 다른 컨텍스트보다 훨씬 더 많이 사용했기 때문에 아마도 그 때문에 조금 편향되어있을 것입니다.

TopLink Essentials에서 시도한 몇 가지 작은 장난감 프로젝트는 거의 잘 작동했지만 캐싱이나 공급자 관련 문서가 필요한 항목은 없었습니다. 일반적으로 Hibernate를 사용하는 이유 중 일부인 커뮤니티 지원이 적다는 생각이 듭니다.

1

나는 최대 절전 모드를 사용한다. 매우 성숙하고 매우 잘 작동합니다. 필자는 개인적으로 다른 것들을 사용하지 않았지만, Hibernate가 가장 완벽하게 기능하는 JPA 공급자 중 하나라는 것을 알고 있습니다. 또한 많은 사람들이 그것을 사용하고 있기 때문에, 내가 가진 모든 문제에 관해서는, 나는 인터넷 검색을 조금만하면 해결책을 빨리 찾을 수 있습니다.

0

저는 최근에 Kodo JPA 프레임 워크로 구축 된 대형 엔터프라이즈 애플리케이션에서 작업했습니다. Kodo가 제작 한 SQL은 일반적으로 많은 양의 데이터로 확장 성이 떨어졌습니다. 내 의견으로는 그것은 외부 조인과 너무 많은 쿼리를 생성했습니다. kodo를 확장하려고 할 때 변경해야하는 매핑 수를 고려할 때 대규모 엔터프라이즈 응용 프로그램에 사용하지 않는 것이 좋습니다. 우리가 얘기 한 오라클 담당자조차도 kodo에서 TopLink로 고객을 이동 시키려고합니다. Oracle은 앞으로 kodo를 단계적으로 중단 할 수 있습니다.

관련 문제