2010-06-14 46 views
8

Lựa chọn của bạn là gì? Bạn có bất cứ đề nghị và kinh nghiệm?So sánh triển khai JPA 2.0: Hibernate 3.5 so với EclipseLink 2 so với OpenJPA 2

Tôi đang phát triển một ứng dụng với Hibernate 3.5 và mùa xuân 3,0

Ưu điểm:

  • Tốt tài liệu
  • Dễ dàng cấu hình và các bản ghi hữu ích
  • Popularity - cộng đồng rộng
  • Một số phần mở rộng gửi đến JPA
  • Một số công cụ bổ sung - Công cụ JBoss cho Eclipse, hbm2ddl, tạo metamodel tĩnh vv ...

Nhược điểm:

  • Bugs! (Trình tự, bộ sưu tập, v.v ...)
  • Rất nhiều tính năng được tăng gấp đôi với Hibernate "thuần túy". Có một mớ hỗn độn trong các chú thích Hibernate và JPA cũ.

Tôi đang xem xét chuyển sang EclipseLink. Bạn nghĩ sao ?

Chỉnh sửa:

Tôi đã thử EclipseLink và có trải nghiệm rất xấu. Có vẻ như EclipseLink cần LoadTimeWeaver và thích chạy trên nền tảng OSGi hơn là môi trường Jetty hoặc Tomcat đơn giản. Tôi chỉ không có thời gian cho tất cả các công cụ cấu hình này.

Trả lời

6

EclipseLink chạy hoàn toàn tốt mà không có Weaver và cũng như nhau trong nền tảng Jetty, Tomcat hoặc OSGi. Tải xuống tiêu chuẩn là một eclipselink.jar đơn giản. Bạn có lẽ tải xuống gói OSGi do nhầm lẫn không?

Bộ dệt không bắt buộc nhưng sẽ thêm một số lợi ích hiệu suất và nếu bạn không muốn định cấu hình để chạy vào mùa xuân, bạn có thể sử dụng trình dệt tĩnh tại thời gian biên dịch (http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#To_Configure_Static_Weaving_for_JPA_Entities).

+0

Câu trả lời của bạn thật thú vị. Tôi quan tâm đến phương pháp dệt tĩnh với ANT nghĩa là 'org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask' - nhưng tôi dường như không thể làm cho nó hoạt động do lỗi này http://stackoverflow.com/question/5783991/eclipselink-2-ant-task-error. Đây có phải là lỗi với Eclipselink 2 không? – ChuongPham

0

Tôi muốn nói điều đó tùy thuộc vào đơn đăng ký của bạn. Nếu bạn tuổi sẽ sử dụng rất nhiều tính năng liên quan đến Oracle (như, bạn cần gợi ý trong các truy vấn SQL hoặc phân cấp của bạn hoặc vân vân), EclipseLink phù hợp hơn với bạn. Trong trường hợp khác, hãy chọn Hibernate. Bạn có thể tìm thêm chi tiết tại http://simpletoad.blogspot.com/2012/11/what-u-must-know-about-eclipselink-orm.html BTW, không quan tâm đến điểm chuẩn hiệu suất tại đó ORM - nếu hiệu suất là phê phán - không sử dụng ORM ở tất cả

+1

Cảm ơn bạn đã đăng câu trả lời! Vui lòng đảm bảo đọc kỹ [FAQ on Self-Promotion] (http://stackoverflow.com/faq#promotion). Cũng lưu ý rằng nó là * bắt buộc * mà bạn đăng tuyên bố từ chối trách nhiệm mỗi khi bạn liên kết đến trang web/sản phẩm của riêng bạn. –