我完全不懂Hibernate,遇到了以下的错误信息:
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)
我的 hibernate.cfg.xml 和 TracksEntity.java 都是由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>
什么问题?我看到它未被找到,但为什么?