(请教SSH框架中)org.hibernate.MappingException: Unknown entity

w1sw 2015-11-23 05:24:28
报错:
Exception in thread "main" org.hibernate.MappingException: Unknown entity: cqu.edu.entity.Students
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1451)
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:338)
at com.sun.proxy.$Proxy19.save(Unknown Source)
at cqu.edu.entity.TestStudents.testSaveStudent(TestStudents.java:48)
at cqu.edu.entity.TestStudents.main(TestStudents.java:58)
Students.hbm.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="cqu.edu.entity.Students" table="STUDENTS">
<id name="sid" type="java.lang.String" length="8">
<generator class="assigned"/>
</id>
<property name="sname" type="java.lang.String"></property>
<property name="gender" type="java.lang.String"></property>
<property name="birthday" type="java.util.Date"></property>
<property name="address" type="java.lang.String"></property>

</class>
</hibernate-mapping>
hibernate.cfg.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name ="connection.username">root</property>
<property name ="connection.password">123456</property>
<property name= "connection.driver_class">com.mysql.jdbc.Driver </property > <!-- 驱动路径 -->
<property name= "connection.url">jdbc:mysql://127.0.0.1:3306/students_database?useUnicode=true&characterEncoding=UTF-8</property ><!-- 连接数据库字符串 -->
<property name= "hibernate.dialect">org.hibernate.dialect.MySQLDialect</property >
<property name ="show_sql">true</property> <!-- 显示SQL语句 -->
<property name ="format_sql">true</property>
<property name ="hbm2ddl.auto">update</property>
<!-- 配置使用session.getCurrentSession()方法 -->
<property name= "hibernate.current_session_context_class" >thread</property >
<property name="javax.persistence.validation.mode">none</property>
<!-- hbm.xml -->
<mapping resource ="cqu/edu/entity/Users.hbm.xml"/>
<mapping resource ="cqu/edu/entity/yStudents.hbm.xml"/>

</session-factory >
</hibernate-configuration>
测试类:
@Test
public void testSaveStudent(){
Configuration cfg = new Configuration();
cfg.configure();
Session session = MyHibernateSessionFactory.getSessionFactory().getCurrentSession();
session.beginTransaction();
Transaction tx=session.beginTransaction();

// cfg.addClass(cqu.edu.entity.Students.class);

Students student1=new Students("S0000001","张三","男",new Date(),"重庆");
Students student2=new Students("S0000002","李四","男",new Date(),"海南");
Students student3=new Students("S0000003","王五","男",new Date(),"四川");
session.save(student1);
session.save(student2);
session.save(student3);

tx.commit();
}
我明明已经配置了mapping为什么还说找不到我的实体类??麻烦大家帮我看看,谢谢
...全文
287 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crabime 2016-07-19
  • 打赏
  • 举报
回复
hibernate+struts???不用Spring你用什么整合?之前我尝试过了,这中间必须有一个Session创建过程,你用struts2每次请求都会创建一个Session,很显然是不可以的。
tiaoxixiaoji 2015-11-25
  • 打赏
  • 举报
回复
引用 6 楼 a360394557 的回复:
[quote=引用 3 楼 tiaoxixiaoji 的回复:] 话说你不是ssh吗,可以直接在spring的application.xml里面配置类似 <property name="mappingLocations"> <list> <value>classpath:org/model/*.hbm.xml</value> </list> </property> 这样的路径映射吧?
我目前只用到了hibernate+struts,还没用到spring,我觉得这样应该也可以mapping上呀,为什么老是提示找不到我的这个实体类呢?[/quote]你的映射路径写错了
xf_leon 2015-11-24
  • 打赏
  • 举报
回复
hibernate 的 entity 建议用注释。在spring配置文件上加上自动扫描
tiaoxixiaoji 2015-11-24
  • 打赏
  • 举报
回复
映射文件在在hibernate.cfg.xml中的配置出错 <mapping resource ="cqu/edu/entity/yStudents.hbm.xml"/>去掉yStudents.hbm.xml左边的y
tiaoxixiaoji 2015-11-24
  • 打赏
  • 举报
回复
话说你不是ssh吗,可以直接在spring的application.xml里面配置类似 <property name="mappingLocations"> <list> <value>classpath:org/model/*.hbm.xml</value> </list> </property> 这样的路径映射吧?
sinat_31535993 2015-11-24
  • 打赏
  • 举报
回复
<class name="cqu.edu.entity.Students" table="STUDENTS"> <mapping resource ="cqu/edu/entity/yStudents.hbm.xml"/> 你瞅瞅,这个什么鬼
w1sw 2015-11-24
  • 打赏
  • 举报
回复
引用 4 楼 xf_leon 的回复:
hibernate 的 entity 建议用注释。在spring配置文件上加上自动扫描
现在还没用到spring,只用hibernate和stats可以吗?
w1sw 2015-11-24
  • 打赏
  • 举报
回复
引用 3 楼 tiaoxixiaoji 的回复:
话说你不是ssh吗,可以直接在spring的application.xml里面配置类似 <property name="mappingLocations"> <list> <value>classpath:org/model/*.hbm.xml</value> </list> </property> 这样的路径映射吧?
我目前只用到了hibernate+struts,还没用到spring,我觉得这样应该也可以mapping上呀,为什么老是提示找不到我的这个实体类呢?
w1sw 2015-11-24
  • 打赏
  • 举报
回复
引用 1 楼 sinat_31535993 的回复:
<class name="cqu.edu.entity.Students" table="STUDENTS"> <mapping resource ="cqu/edu/entity/yStudents.hbm.xml"/> 你瞅瞅,这个什么鬼
不好意思,我在复制的时候不小心加的,去掉这个还是原错误(本来就没这个y)。我目前还没用到Spring的东西,只用了struts+hibernate

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧