hibernate映射问题??
求大神解决!!
错误:
Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.hibernate.model.Student
Student.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 package="com.hibernate.model">
<class name="com.hibernate.model.Student" table="student">
<id name="id" column="s_id" type="integer">
<generator class="native" />
</id>
<property name="name" column="s_name" type="string"></property>
<property name="sex" column="s_sex" type="string"></property>
<property name="age" column="s_age" type="integer"></property>
<property name="time" column="s_time" type="date"></property>
</class>
</hibernate-mapping>
Student.java:
package com.hibernate.model;
import java.util.Date;
public class Student {
private int id;
private String name;
private String sex;
private int age;
private Date time;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
[解决办法]
hibernate.cfg.xml里配置了吗?
[解决办法]
因为你的映射文件(*.hbm.xml) 没有被映射
问题出现的原因,有几下几点:
1,检查你的映射文件的名字是否和你的Student(*.java)的名字是否相同。
2.映射文件的名字是*.hbm.xml而不是*.xml
3.你是否加载了你的映射文件。
加载的方法:
在你的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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
…………
…………
<!-- 用于记载映射文件Student.hbm.xml-->
<mapping resource="com/Students.hbm.xml"/>
</session-factory>
</hibernate-configuration>
另外,package 和class 的name不能有重复的地方 ,一个写了包名 另一个只写文件名就可以了