Hibernate:无法加载在Hibernate配置中声明的类< mapping />条目 [英] Hibernate: Unable to load class declared in Hibernate configuration <mapping/> entry

查看:99
本文介绍了Hibernate:无法加载在Hibernate配置中声明的类< mapping />条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Hibernate中是全新的,并且有这样一个堆栈跟踪:

  hql> from TracksEntity 
[2014-04-26 21:13:45] org.hibernate.MappingException:无法加载在Hibernate配置中声明的类[model.TracksEntity]< mapping />入门
[2014-04-26 21:13:45] java.lang.ClassNotFoundException:model.TracksEntity $ b $ java.net.URLClassLoader $ 1.run(URLClassLoader.java:372)
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)$ java.util.AccessController.doPrivileged(本地方法)
在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)$ b $在java.lang.Class.forName0(本地方法)
在java.lang.Class.forName(Class.java:259)
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:192)
在org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2188)
在org.hibernate.cfg。 Configuration.parseSessionFactory(Configuration.java:2139)
在org.hibernate.cfg.Configuration.doConfigure(Con
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2072)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2045)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl。调用(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
在sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323)
在sun.rmi.transport.Transport $ 1.run(Transport.java:178)
在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)
在sun.rmi.transport.tc p.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)$ b $在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在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:
包模型;

  import javax.persistence。*; 

@Entity
@Table(name =TRACKS,schema =APP,catalog =)
public class TracksEntity {
private int id;
私人字符串艺术家;
private int duration;
私有字符串标题;
私人字符串网址;

@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;

返回true;
}

@Override
public int hashCode(){
int result = id;
result = 31 * result +(artist!= null?artist.hashCode():0);
结果= 31 *结果+持续时间;
result = 31 * result +(title!= null?title.hashCode():0);
result = 31 * result +(url!= null?url.hashCode():0);
返回结果;


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>

问题是什么?我发现它没有找到,但为什么?

解决方案

听起来很愚蠢,但我把我的实体类放在一个包中是不是我放在映射..和hibernate当然无法找到它...仅供参考..也许重新检查可以解决您的问题最好的问候。


I am completely new in Hibernate and got such an 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)

My hibernate.cfg.xml and TracksEntity.java was automatically generated by 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>

What the problem is? I see that it is not found, but why?

解决方案

Sounds quite silly but i was putting my entity Class in a package which is not the same i put in the mapping.. and hibernate of course could not find it... just for reference.. maybe a recheck can solve your problem best regards.

这篇关于Hibernate:无法加载在Hibernate配置中声明的类&lt; mapping /&gt;条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆