本来这个应该是映射问题,可是我已经查了很多遍,感觉映射应该没错,很费解,请各位大虾帮忙。
错误是这样的:
net.sf.hibernate.MappingException: Unknown entity class: com.fly.test.Test
at net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:347)
at net.sf.hibernate.impl.SessionImpl.getClassPersister(SessionImpl.java:2718)
at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2725)
at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:774)
at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:749)
at com.fly.test.dao.TestDao.add(TestDao.java:24)
at com.fly.test.dao.TestDao.main(TestDao.java:40)
它是不是说我的映射问题,可是我的Hibernate.cfg.xml中已经映射过了:
<mapping resource="com/fly/test/Test.hbm.xml" />
原代码如下:
package com.fly.test;
/**
*
* @author flyli
*
* @hibernate.class table="t_test"
*/
public class Test
{
private Long id;
private String testId;
private String testName;
/**
* @hibernate.id generator-class="increment"
* @return
*/
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
/**
* @hibernate.property type="string" length="20"
* @return
*/
public String getTestId()
{
return testId;
}
public void setTestId(String testId)
{
this.testId = testId;
}
/**
* @hibernate.property type="string" length="50"
* @return
*/
public String getTestName()
{
return testName;
}
public void setTestName(String testName)
{
this.testName = testName;
}
}
hbm映射是生成的,应该没什么问题。
Dao类代码如下:
public class TestDao
{
public static void add(Map map)
{
Test test = new Test();
test.setTestId(map.get("testId").toString());
test.setTestName(map.get("testName").toString());
Session session = HibernateUtil.getSession();
HibernateUtil.beginTransaction();
try
{
session.save(test);
}
catch (HibernateException e)
{
e.printStackTrace();
}
HibernateUtil.commitTransaction();
}
public static void main(String [] args)
{
Map map = new HashMap();
map.put("testId","001");
map.put("testName","软件开发部");
TestDao.add(map);
}
}