2009-06-15 22 views
36

Ưu điểm và nhược điểm của việc chọn JDO hoặc JPA cho một ứng dụng Grails sẽ chạy trên Google AppEngineJava AppEngine: JDO hoặc JPA, Cách chọn?

+2

Bạn có ý nghĩa gì với JDO hoặc JPA không? –

+0

Corrected, Cảm ơn – zotherstupidguy

+0

điều này giải thích JDO vs JPA cho động cơ java google app - http://stackoverflow.com/questions/1418219/jdo-vs-jpa-for-java-on-google-app-engine –

Trả lời

3

Bằng cách này, Grails có độ bền vững dữ liệu được xây dựng trên Hibernate. Làm thế nào để bạn nghĩ rằng JDO sẽ giúp bạn trong một cái gì đó Hibernate sẽ không? Tôi không hiểu tại sao người ta lại chọn JDO mặc định. Theo như JPA là có liên quan, tôi sẽ khuyên bạn nên sử dụng JPA, Hibernate thực hiện JPA mà đi kèm với Grails, và không phải bất kỳ tính năng cụ thể Hibernate, trừ khi hấp dẫn khác.

[Không phù hợp hơn sau khi một sự thay đổi đáng kể trong câu hỏi]

Thats hoàn toàn tốt đẹp để có hoạt động CRUD trong tổ chức của bạn riêng của mình. Nhưng có những trường hợp bạn có thể thấy mình hoạt động trên nhiều thực thể, trong trường hợp đó một lớp có ích và sạch sẽ, IMHO. Một lần nữa, vấn đề yêu cầu của nó.

+1

hibernate không hoạt động với GAE, do đó bạn bị kẹt sử dụng một số hình thức JDO hoặc JPA –

2

[Không còn phù hợp sau khi một sự thay đổi đáng kể trong câu hỏi]

Hãy xem các bài viết sau:

http://www.infoq.com/news/2007/09/jpa-dao

Âm thanh như nó thực sự phụ thuộc vào bản chất của ứng dụng của bạn và kích thước của nó. JPA là đơn giản vì vậy tôi muốn gắn bó với điều đó và cố gắng tránh một lớp DAO trong ứng dụng của bạn, miễn là nó là một ứng dụng khá nhỏ và đơn giản.

+0

Liên kết đẹp, Jon. +1 –

43

I do xem lý do bạn chọn JDO. Không biết "mặc định" được áp dụng bởi poster khác là gì. JDO là datastore-agnostic. JPA thì không. JDO cho phép tìm nạp các nhóm. JPA thì không. JDO cho phép nhận dạng kho dữ liệu. JPA thì không. JDO cho phép các giao dịch kho dữ liệu. JPA thì không. Tất cả những điều này là hồ sơ công khai http://db.apache.org/jdo/jdo_v_jpa.html

JDO và JPA không điền vào cùng một không gian vấn đề. Chúng chỉ chồng lên nhau cho RDBMS. JPA chỉ được thiết kế cho RDBMS.JPA không phải là đơn giản hơn, bằng chứng là so sánh API tại http://db.apache.org/jdo/jdo_v_jpa_api.html

--Andy (DataNucleus)

7

Nếu bạn đang xây dựng cho AppEngine đường ngắn hơn và có những trục trặc ít nếu bạn sử dụng JDO. Khác, bạn sẽ có một lớp JPA xung quanh công cụ JDO của bạn.

Các vấn đề liên quan