Problem mit openJPA

Status
Nicht offen für weitere Antworten.

TommyHB

Mitglied
Hallo,

natürlich habe ich erst einmal wie wild gegoogelt, aber nix dazu gefunden:

Ich habe ein kleines Projekt mit der Anforderung Apache openJPA zu nutzen.
Grundsätzlich hatte ich bisher keine Probleme mit JPA mit der toplink Library zu nutzen.
Letztere erhält das notwendige Package javax.persistance.
openJPA aber nicht, obwohl die Doku was anderes sagt.
Somit findet Netbeans die entsprechenden Classes und Annotations nicht.
Alle Beispiele zu openJPA nutzen natürlich javax.persistance wie es die Spezifikation vorgibt.
Wo liegt da der Trick, bzw. welche Bibliothek muß ich noch einbinden?
Wahrscheinlich ein simples "Wald vor lauter Bäumen" Problem... :-(
Bitte keine Antworten der Art "Dann benutze doch was anderes"
Im Voraus vielen Dank.
 

foobar

Top Contributor
Hol dir doch das persistence-api.jar aus Hibernate, da ist es auf jeden Fall vorhanden. Anscheinend fehlt dir ja nur die API und die sollte ja bei allen Implementierungen identisch sein.
 

TommyHB

Mitglied
Danke erst einmal. Wenn das denn so funktioniert...
Habe mir jetzt das javax.peristance package aus der der toplink-essentials.jar rausgezogen und in eine eigene jar Datei gepackt, die ins Projekt eingebunden wurde. Somit meckert Netbeans erstmal nicht. Ob's runtimemäßig dann wieder funktioniert, werde ich sehen.
 
G

Guest

Gast
Im lib Verzeichnis von OpenJPA gibt es alles, was zur Laufzeit benötigt wird.
Das javax.persistence Zeug steht in geronimo-jpa_3.0_spec-1.0.jar (ich habe hier OpenJPA 1.1.0).
 

TommyHB

Mitglied
Supi, danke, ist nun alles da.
Habe mal zum Testen unten stehenden Code eingegeben, bekomme aber nun folgende Meldung:

Code:
init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.NullPointerException
        at addressbuch.Main.main(Main.java:25)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

1. Klasse Address:

Code:
package addressbuch;
import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(name = "ADDRESSES",schema = "APP")
public class Address implements Serializable {
    private Long    id;
    private String  lastName;
    private String  firstName;
    private String  street;
    private String  plz;
    private String  city;
     public Address() {
    }
     public Address(String lName, String fName, String mstreet, String mplz, String mcity) {
        this.lastName = lName;
        this.firstName = fName;
        this.street = mstreet;
        this.plz = mplz;
        this.city = mcity;
    }
    @Id
    @GeneratedValue
    public Long getId() {
        return this.id;
    }
   public void setId(Long id) {
        this.id = id;
    }
     public String getLastName() {
        return lastName;
    }
    public void setLastName(String name) {
        lastName = name;
    }
     public String getFirstName() {
        return firstName;
    }
     public void setFirstName(String name) {
        firstName = name;
    }
     public String getStreet() {
        return street;
    }
     public void setStreet(String street) {
        this.street = street;
    }
    public String getPlz() {
        return this.plz;
    }
     public void setPlz(String plz) {
        this.plz = plz;
    }
    public String getCity() {
        return street;
    }
    public void setCity(String city) {
        this.city = city;
    }
}

2. Klasse Main:

Code:
package addressbuch;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class Main {

        public Main(){
        }
        public static void main(String[] args) {
           EntityManagerFactory emf = Persistence.createEntityManagerFactory("addressbook");
           EntityManager em = emf.createEntityManager();
           Address adr = new Address("Schmidt", "Willi", "Ottostr. 3", "12345", "Irgendwo");
           em.getTransaction().begin();
           em.persist(adr);        
           em.getTransaction().commit();
           em.close();
           emf.close(); 
        }

}

3. persistance.xml:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="openjpa">
    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
    <class>adressbuch.Adresse</class>
    <properties>
      <property name="openjpa.ConnectionURL" value="jdbc:derby://localhost:1527/addressbook; create=true"/>
      <property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.ClientDriver"/>
      <property name="openjpa.ConnectionUserName" value="app"/>
      <property name="openjpa.ConnectionPassword" value="app"/>
      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
    </properties>
  </persistence-unit>
</persistence>

Ich finde den Fehler einfach nicht. Sieht das jemand von Euch?
 
G

Guest

Gast
Setze einen Braikpoint in die erste Zeile von 'main' und gehe es mit dem Debugger Zeile für Zeile durch, dann weisst
du mehr. ;)
Das hat zwar nichts mit dem Fehler zu tun, aber bei Serializable würde ich dir empfehlen immer serialVersionUID
zu definieren...
 

semi

Top Contributor
...noch etwas. Wo ist eigentlich die persistence unit 'addressbook' definiert? In deiner persistence.xml steht 'openjpa'.
 

TommyHB

Mitglied
Nochmals Dank.
Nachdem ich meine Brille aufgesetzt habe, habe ich auch die "Tippfehler" gefunden. (Der Fluch des Copy-and-paste)
Läuft jetzt alles wunderbar und ich kann endlich loslegen. ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y [openJPA] Problem mit Transaktion? Data Tier 2
N Problem beim initialisieren des Caches Data Tier 0
S JPA Problem mit Cascading Data Tier 1
M Eclipse 4 RCP Hibernate Problem Data Tier 3
C JPA FetchType.LAZY, Relation @OneToMany und Problem mit dem update Data Tier 1
K Problem mit EJBs und Transaktionen Data Tier 0
G JPA: Entity Klasse @JoinColumns Problem Data Tier 2
M JPA Problem: java.sql.SQLSyntaxErrorException: Data Tier 7
H Hibernate Problem mit Lazy Loading bei @OneToMany Collections Data Tier 5
M MySql und JPA-Timestamp Problem Data Tier 8
J Hibernate Problem bei Master-Detail-Tabellen Data Tier 5
A JPA - ManyToMany Problem - keine Unique Mehrfachzuweisungen Data Tier 4
M Problem beim Laden von Objekten, die von anderen Applikationen in eine DB eingefügt wurden Data Tier 5
M Problem mit @Temporal Mapping und SQL Server Data Tier 3
P JPA - HashMap mit Many-to-Many Relation Problem Data Tier 4
B Problem mit @ManyToMany und CascadeType.ALL Data Tier 3
Blackskyliner [JPA][Anfänger] Problem mit Wertzuweisung aus Verbundtabelle Data Tier 2
B Problem mit org.hibernate.LazyInitializationException Data Tier 11
B DatenquellenUpdater extends Thread - Problem mit PermGenSpace Data Tier 5
S Problem beim Insert mit Hibernate Data Tier 9
A @SecondaryTable Problem Data Tier 9
N Problem beim session.flush(); Data Tier 17
Y Postgres und JPA - Primärschlüssel Problem Data Tier 3
P SQL PRoblem Hibernate? Data Tier 8
Y EJB Problem mit Transaktionen Data Tier 7
M Transaction / Session Problem Data Tier 4
G JPA 2.0 Query Problem Data Tier 3
P CORBA Problem bei EJB 3.0 Anwendung in Glassfish v3 Data Tier 7
F Problem mit Hibernate Schema Update Data Tier 2
S Lazy loading Problem Data Tier 2
M Insert-Problem mit JPA/Hibernate Data Tier 4
megachucky JPA - Problem mit Persistence Unit / Context Data Tier 1
H Hibernate Problem Data Tier 4
D Performance Problem mit Prepared Statement Data Tier 6
P Problem mit Data Tier 9
GilbertGrape Cascade Problem (Hibernate) Data Tier 3
C JPA Problem mit attributeOverride und mehrspaltigem PK Data Tier 2
B select "neu" statement Problem (jpql) Data Tier 8
boxi Hibernate Lazy Loading Problem Data Tier 2
M Problem mit Hibernate und SLF4J - NoSuchMethodException Data Tier 3
G Connection Problem - WAS 6.1, Hibernate, OS Authentication Data Tier 1
K Hibernate update-Problem Data Tier 36
J hibernate problem Data Tier 14
N Hibernate - Problem mit Update/Insert Data Tier 4
B Problem mit @PersistenceContext Data Tier 4
G Problem with mapped of the tables at one to one relationship Data Tier 8
S JPA Hibernate Search & EclipseLink (oder OpenJPA) Data Tier 0
N Spring / OpenJPA Inheritance: Subklassen werden nicht erkannt Data Tier 4
S OpenJPA mit einem Java-SE-Projekt benutzen Data Tier 5

Ähnliche Java Themen

Neue Themen


Oben