java - hibernate 状态下的未知实体

标签 java spring hibernate maven orm

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

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

主要类:
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();

}

}

最佳答案

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

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

或者您必须使用显式将该类添加到配置中
configuration.addClass(com.foo.bar.Portfolio.class)

关于java - hibernate 状态下的未知实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667986/

相关文章:

java - 以下对于 Largest in array of unsorted numbers 的时间复杂度

java - 延迟加载问题何时将子项添加到父项 - hibernate

java - 无法写入 JSON : No serializer found for class org. json.JSONObject 并且未发现创建 BeanSerializer 的属性

java - 我可以从 lomboks @Data 注释中排除字段吗?

java - 如何将数据库生成的列值定义为 JPA 和 Hibernate 中的只读字段?

hibernate - 冲洗模式只能使用一次吗?

java - android fragment 新手 - 寻找一些答案

java - 在 Spring Boot 应用程序中加载第三方 jar 的问题

hibernate 和复合键

java - Netty4 可读字节太小