2015-08-31 75 views
1

我知道JPA和具體實現之間的差異,例如Hibernate或EclipseLink,但我感興趣的是,當我下載例如Eclipse JAVA EE版本,然後在我的項目中使用javax.persistence包時,它使用哪個實現?我的猜測是EclipseLink或OpenJPA,但我怎麼知道?Eclipse使用哪種JPA實現?

我很感興趣,這是因爲我比較Hibernate的性能和javax.persistence包,並從我的角度來看的性能差距(只是從數據庫中的行數千元),是相當大的(大約一秒鐘)

+1

在編譯時它沒有使用。在運行時,它會根據下拉列表使用您配置它使用的內容。這不是性能比較的網站;所有的實現都可以配置爲提供出色的性能。 –

+0

是的,我知道我沒有專業的數據庫性能,我只是做了基本的測試,它真的讓我驚訝,差異有多大 – mrtn

回答

0

Eclipse EE將通過可添加到項目的JPA方面捆綁EclipseLink,但除此之外它並未真正提供任何特定的實現(您可以將其配置爲提供其他實現,如果使用方面進行配置與其他用戶庫)。您的實施由庫或您正在部署到的應用服務器提供。從長遠來看,更具戰略性的方法是通過依賴關係(maven)或引用/使用應用服務器提供的庫來明確包含實現。