Hibernate: Unable to load deklarierten Klasse in der Hibernate-Konfiguration <mapping/> Eintrag
Ich bin völlig neu in Hibernate und bekam so ein stacktrace:
hql> from TracksEntity
[2014-04-26 21:13:45] org.hibernate.MappingException: Unable to load class [ model.TracksEntity] declared in Hibernate configuration <mapping/> entry
[2014-04-26 21:13:45] java.lang.ClassNotFoundException: model.TracksEntity
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2188)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2139)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2119)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2072)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2045)
at com.intellij.hibernate.remote.impl.RemoteConfigurationImpl.configure(RemoteConfigurationImpl.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
at sun.rmi.transport.Transport$1.run(Transport.java:178)
at sun.rmi.transport.Transport$1.run(Transport.java:175)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:174)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:671)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)
Meine hibernate.cfg.xml und TracksEntity.java wurde automatisch generiert Intellij Idea:
TracksEntity.java:
package model;
import javax.persistence.*;
@Entity
@Table(name = "TRACKS", schema = "APP", catalog = "")
public class TracksEntity {
private int id;
private String artist;
private int duration;
private String title;
private String url;
@Id
@Column(name = "ID")
public int getId () {
return id;
}
public void setId (int id) {
this.id = id;
}
@Basic
@Column(name = "ARTIST")
public String getArtist () {
return artist;
}
public void setArtist (String artist) {
this.artist = artist;
}
@Basic
@Column(name = "DURATION")
public int getDuration () {
return duration;
}
public void setDuration (int duration) {
this.duration = duration;
}
@Basic
@Column(name = "TITLE")
public String getTitle () {
return title;
}
public void setTitle (String title) {
this.title = title;
}
@Basic
@Column(name = "URL")
public String getUrl () {
return url;
}
public void setUrl (String url) {
this.url = url;
}
@Override
public boolean equals (Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
TracksEntity that = (TracksEntity) o;
if (duration != that.duration) return false;
if (id != that.id) return false;
if (artist != null ? !artist.equals(that.artist) : that.artist != null) return false;
if (title != null ? !title.equals(that.title) : that.title != null) return false;
if (url != null ? !url.equals(that.url) : that.url != null) return false;
return true;
}
@Override
public int hashCode () {
int result = id;
result = 31 * result + (artist != null ? artist.hashCode() : 0);
result = 31 * result + duration;
result = 31 * result + (title != null ? title.hashCode() : 0);
result = 31 * result + (url != null ? url.hashCode() : 0);
return result;
}
}
hibernate.cfg.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:derby:/home/zimy/Documents/drbdb;create=true;create=true</property>
<property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<mapping class="model.TracksEntity"/>
</session-factory>
</hibernate-configuration>
Was das problem ist? Ich sehe, dass es nicht gefunden wird, aber warum?
InformationsquelleAutor Zimy | 2014-04-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt ziemlich dumm, aber ich war putting meine entity-Klasse in einem Paket, in dem ist nicht die gleiche, die ich in der mapping.. und hibernate natürlich konnte es nicht finden... nur für Referenz.. vielleicht eine erneute überprüfung kann Ihr problem lösen beste Grüße.
InformationsquelleAutor chiperortiz
und auch keine Notwendigkeit zu erwähnen, scema
InformationsquelleAutor nik
Ich hatte ein ähnliches problem, wenn die mapping-Datei nicht richtig laden. Die Antwort auf dieses problem scheint zu sein, dass wir brauchen, um die richtige import-Anweisungen, die in unserem Modell-Klassen.
Ändern der import
import javax.persistence.Entity
anstelle der Verwendung der von hibernate-Paket ( ieorg.hibernate.annotations.Entity
), das Problem in meinem Fall.Diese Ausgabe ist eine echte Schmerzen , und ich verbrachte mehr als 1/2 Tag auf der Suche an allen Ecken, wenn Sie eine einfache import-behoben das Problem.
Hoffe, das hilft.
InformationsquelleAutor Kasi subramaniam
Für mich gearbeitet:
Ändern der position des mapping-tag in hibernate.cfg.xml für die Klasse wurde nicht geladen zuvor.
Hielt ich das oben jetzt.
InformationsquelleAutor Mohit
ich vor kurzem erlebt. Ich habe alles überprüft und habe nichts gefunden, das könnte Sie verursacht haben. In seiner Verzweiflung, ich bewegte nur die "/"> "" näher bei der Zuordnung und gespeichert. Und es hat funktioniert. Geheimnisvoll...
InformationsquelleAutor arn-arn
Mein Fehler war es, einen camel-case problem. Ich hatte eine eingebettete Entität "IndexPK" und schrieb "IndexPk" in der mapping-Datei. Ich verglich es ~20 mal.... bis ich dachte, dieses heraus.
InformationsquelleAutor cljk
In meinem Fall, ich habe gerade umgeschichtet Projekt. Und dann das problem gelöst!
InformationsquelleAutor Atequer Rahman