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
