未知的实体在休眠 [英] Unknown entity on hibernate

查看:95
本文介绍了未知的实体在休眠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

执行主类时出现此错误。我试图在表格组合中插入新纪录。正如你所看到的,我正在使用Hibernate ORM模型来做到这一点。也可以说hibernate与数据库的连接没有任何问题是很好的!

 线程main中的异常org.hibernate.MappingException:未知实体:com.nortal.vspa.model.Portfolio 
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1129)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1402)
at org.hibernate.event .internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:204)
at org.hibernate.event.internal.DefaultSaveEventListener .saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:189)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener .java:49)
在org.hibernate.event.internal.Default SaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:756)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java: 748)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:744)
at com.nortal.vspa.main.Main.main(Main.java:24)

实体类:

  @Entity 
@Table(name =portfolio)
public class Portfolio实现Serializable {

private static final long serialVersionUID = -1136208004146721604L;

@Id
@Column(name =symbol)
私有字符串符号;

public String getSymbol()
{
return symbol;
}

public void setSymbol(String symbol)
{
this.symbol = symbol;


$ / code $ / pre
$ b $主要类别:

  public class Main {

/ **
* @param args
* /
public static void main(String [] args){

Session session = HibernateUtil.getSessionFactory()。openSession();
session.beginTransaction();
投资组合=新投资组合();

portfolio.setSymbol(MB);

session.save(portfolio);
session.getTransaction()。commit();



$ b


解决方案

Hibernate配置文件必须列出实体类:

 < mapping class =com.foo .bar.Portfolio/> 

或者您必须使用
$ b明确地将该类添加到配置中$ b

  configuration.addClass(com.foo.bar.Portfolio.class)


I got this error when executing the main class. Am trying to insert new record at the table portfolio. As you see am using Hibernate ORM model to do that. Also it is good to say that hibernate doing the connection to the database without any problem !

Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.nortal.vspa.model.Portfolio
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1129)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1402)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:204)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:189)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:756)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:748)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:744)
at com.nortal.vspa.main.Main.main(Main.java:24)

Entity Class:

@Entity
@Table(name="portfolio")
public class Portfolio implements Serializable {

private static final long serialVersionUID = -1136208004146721604L;

@Id
@Column(name="symbol")
private String symbol;

public String getSymbol()
{
    return symbol;
}

public void setSymbol(String symbol)
{
    this.symbol = symbol;
}
}

Main Class:

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {

     Session session =  HibernateUtil.getSessionFactory().openSession();
     session.beginTransaction();
    Portfolio portfolio = new Portfolio();

    portfolio.setSymbol("MB");

    session.save(portfolio);
    session.getTransaction().commit();

}

}

解决方案

The Hibernate configuration file must list the entity classes:

<mapping class="com.foo.bar.Portfolio"/>

Or you must explicitely add the class to the configuration using

configuration.addClass(com.foo.bar.Portfolio.class)

这篇关于未知的实体在休眠的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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