Entities und Hibernate-Schnitstelle zu PostgresDB

Hi

Ich bin momentan daran eine Applikation zu schreiben, die sich über eine Hibernate-Schnittstelle, von einer Postgres-Datenbank die Daten holen soll.

Das ganze soll mit EntityManagern geregelt werden. Leider stürzt mir, allein schon beim Login (2 Felder vorerst zu prüfen), die ganze Applikation beim erzeugen der EntityManagerFactory ab und ich komme einfach nicht dahinter, was ich falsch mache. Daher bin ich mal so frei und Poste meine EntityClass, die persitence.xml und die Login Methode und hoffe dass ihr hier etwas fitter seid als ich…

Hier die Login Methode, diese soll mir vorerst nur alle Nutzernamen ausspucken. Die Prüfung der Werte ist ja dann nur noch Kleinkrams…

public boolean login (String Benutzername, String Passwort){
EntityManagerFactory emf = Persistence.createEntityManagerFactory(„MusterPU“);
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
List list = new ArrayList();
try{
tx.begin();
if(list != null){
list.clear();
}
javax.persistence.Query q = em.createQuery(„SELECT * FROM Benutzer“);
list = q.getResultList();

for(entity.Benutzer b: list){
System.out.println(b.getName());
}
}catch(Exception e){

}
return false;
}

Die EntityClass

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package entity;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name = „Benutzer“)
@NamedQueries({@NamedQuery(name = „Benutzer.findByName“, query = „SELECT b FROM Benutzer b WHERE b.name = :name“), @NamedQuery(name = „Benutzer.findByKennwort“, query = „SELECT b FROM Benutzer b WHERE b.kennwort = :kennwort“), @NamedQuery(name = „Benutzer.findBySuperUser“, query = „SELECT b FROM Benutzer b WHERE b.superUser = :superUser“), @NamedQuery(name = „Benutzer.findByAngelegt“, query = „SELECT b FROM Benutzer b WHERE b.angelegt = :angelegt“)})
public class Benutzer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = „Name“, nullable = false)
private String name;
@Column(name = „Kennwort“)
private String kennwort;
@Column(name = „SuperUser“)
private String superUser;
@Column(name = „Angelegt“)
@Temporal(TemporalType.TIMESTAMP)
private Date angelegt;

public Benutzer() {
}

public Benutzer(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getKennwort() {
return kennwort;
}

public void setKennwort(String kennwort) {
this.kennwort = kennwort;
}

public String getSuperUser() {
return superUser;
}

public void setSuperUser(String superUser) {
this.superUser = superUser;
}

public Date getAngelegt() {
return angelegt;
}

public void setAngelegt(Date angelegt) {
this.angelegt = angelegt;
}

@Override
public int hashCode() {
int hash = 0;
hash += (name != null ? name.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won’t work in the case the id fields are not set
if (!(object instanceof Benutzer)) {
return false;
}
Benutzer other = (Benutzer) object;
if ((this.name == null && other.name != null) || (this.name != null && !this.name.equals(other.name))) {
return false;
}
return true;
}

@Override
public String toString() {
return „entity.Benutzer[name=“ + name + „]“;
}

}

und hier die der zu verwendende Persistence.xml ausschnitt

org.hibernate.ejb.HibernatePersistenceentity.Benutzer

Und hier noch die dazugehörige Fehlermeldung…

Exception occurred during event dispatching:
java.lang.NoSuchFieldError: TRACE
at org.slf4j.impl.Log4jLoggerAdapter.trace(Log4jLoggerAdapter.java:90)
at org.hibernate.cfg.annotations.PropertyBinder.make(PropertyBinder.java:180)
at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1911)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1279)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:754)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:529)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:281)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1121)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1225)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:159)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at ui.JDialogLogin.login(JDialogLogin.java:159)
at ui.JDialogLogin.jButtonLoginActionPerformed(JDialogLogin.java:129)
at ui.JDialogLogin.access$000(JDialogLogin.java:22)
at ui.JDialogLogin$1.actionPerformed(JDialogLogin.java:64)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1422)
at java.awt.Component.setVisible(Component.java:1375)
at java.awt.Window.setVisible(Window.java:806)
at java.awt.Dialog.setVisible(Dialog.java:985)
at ui.JDialogLogin$3.run(JDialogLogin.java:144)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Ich hoffe ich habe nichts vergessen… falls doch bin ich gerne bereit die fehlenden Bausteine zu posten…

Wäre super wenn ihr mir die Augen öffnen könnt…

Vielen Dank

Liebe Grüße

DE

Hallo,

Und hier noch die dazugehörige Fehlermeldung…

Exception occurred during event dispatching:
java.lang.NoSuchFieldError: TRACE
at org.slf4j.impl.Log4jLoggerAdapter.trace(Log4jLoggerAdapter.java:90)

Ich habe mal alles andere großzügig ignoriert. Hört sich für mich an, als ob die zugrundeliegende log4j API das TRACE Level nicht unterstützt. Dieses Level wurde mit log4j 1.2.12 eingeführt, welche Version verwendest du?

Gruß
Heavy

Hey

Perfekt das wars vielen vielen Dank :smile:

Hatte noch die Version 1.2.11 drinen. Jetzt läufts mit der version 1.2.15

Grüße

DE

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]