【发布时间】:2015-11-21 00:26:44
【问题描述】:
我的问题是使用 SessionFactory 映射实体。在我将其移至 Maven 项目之前,我的项目一直在运行。现在,当我使用 Maven 命令创建项目时,我的项目在映射实体方面存在问题。 我将 SessionFactory 与 hibernate.cfg.xml 文件一起使用。在其中我映射了所有实体。 在实体中我导入 javax.persistence.Entity。 你知道其他可能的问题吗?
[编辑] 我的配置文件:
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/report_db</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">false</property>
<!-- Drop and re-create the database schema on startup
<property name="hbm2ddl.auto">create-drop</property>-->
<!-- Mappings -->
<mapping class="com.bombardier.raportcreator.database.entity.impl.Lastfile" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Project" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Costcenter" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Month" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Resource" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Role" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Task" />
<mapping class="com.bombardier.raportcreator.database.entity.impl.Tasktocostcenter" />
</session-factory>
</hibernate-configuration>
示例实体类:
import java.io.Serializable;
import javax.persistence.*;
@Entity
@NamedQuery(name="Lastfile.findAll", query="SELECT l FROM Lastfile l")
public class Lastfile implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private short id;
private String lastFileName;
public Lastfile() {
}
public short getId() {
return this.id;
}
public void setId(short id) {
this.id = id;
}
public String getLastFileName() {
return this.lastFileName;
}
public void setLastFileName(String lastFileName) {
this.lastFileName = lastFileName;
}
}
我的项目结构。 Pom 是项目的主目录。显示实体。 [项目结构][1]:http://i.stack.imgur.com/bDl6l.png
例外:
Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.bombardier.raportcreator.database.entity.impl.Lastfile
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1462)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:100)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:678)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:670)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:665)
at com.bombardier.raportcreator.database.dao.DaoImpl.create(DaoImpl.java:20)
at com.bombardier.raportcreator.file.LastFileManager.setLastFileName(LastFileManager.java:34)
at Test.main(Test.java:48)
【问题讨论】:
-
这些信息不足以让任何人帮助您。
-
是的,我知道,刚才我添加了代码。一般来说,我有项目并且它正在工作,在添加 pom.xml 并使用 maven 映射重新创建项目后停止工作。
-
错误是什么?绒球在哪里?
-
我添加了结构和异常
标签: java entity-framework hibernate maven backend