2010-10-08 10 views
25

JPA 2.0 kullanıyorum ve kalıcı sağlayıcım Hibernate; Ancak, javax'tan standart bir API eklemek istiyorum, ancak merkezde 2.0 artifakı yok. Şu anda Hibernate JPA 2.0 eserlerini kullanıyorum, ancak daha standart bir şey kullanmak istiyorum.JPA 2.0 API maven artefaktı

Bu mümkün mü?

sayesinde

Walter

daha standart bir şey kullanmak Şu anda hazırda JPA 2.0 objeyi kullanıyorum ama İsterdim

cevap

17

hiçbir javax.persistence:persistence-api:jar:2.0 eser hala var Güneş/Oracle. Sun/Oracle'dan bir şey istiyorsanız ya da sadece Hazırda Beklet, EclipseLink, OpenJPA, vb. Tarafından sağlanan arabirimlere bağlı olarak tam javax:javaee-api:jar:6.0 yapıtını kullanın.

+0

Bu hala Kasım 2010 itibariyle durum mu? – HDave

+0

Bir yazım hatası var: 'javaeee-api' var (3 ee dikkat edin), 'javaee-api' olmalı –

+5

Bu hala Ocak 2012'de durum böyle görünüyor ... ne veriyor? – HDave

2

Sorularınızın doğrudan yanıtı: Hayır, bu mümkün değil. . Daha uzun versiyon burada verilmiştir: Apache > Maven > Guide to Coping with Sun JARs. uzun cevap kısa bir özeti:

vardır (en azından) merkez depoda Güneş/Oracle eserler yayınlayarak ile iki sorun:

  1. Kısıtlayıcı lisans
  2. İsimlendirme geleneği
9

As Ivan açıklıyor, Maven'de resmi Sunacle kavanozları yok. Bununla birlikte, belirli bir API'nin bir uygulayıcısının bu API için bir yapay nesne yayınlayacağı (API'nin kendisi için bir yapay doku yayınlayacağı) oldukça sık görülür.

JPA 2.0 durumunda, Hazırda Bekletme, org.hibernate.javax.persistence:hibernate-jpa-2.0-api yayınını yayınlar. . sadece javax.persistence sınıfları ve hiçbir hazırda özgü şeyler içerir

Benim build.gradle nedenle diyor ki:

dependencies { 
    compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final' 
    runtime group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.1.4.Final' 
} 
derleme üzerinde sınıf API hazırda bekleme tahliyesini koyar

ve çalışma zamanı üzerinde sınıf bunların uygulanması

+0

Her büyük sağlayıcı kendi "javax.persistence" sınıflarına sahip gibi görünüyor. Bu, 2016 yılına kadar JPA 2.0, 2.1, vb. Için tek olan olacağını düşündüğünüz gibi aptalcadır. – Powerlord

4

Şu anda (Q4 2017) maven merkezde javax.persistence-api mevcuttur.

<dependency> 
    <groupId>javax.persistence</groupId> 
    <artifactId>javax.persistence-api</artifactId> 
    <version>2.2</version> 
</dependency> 

kod this github repo korunur.