初始化的结果是1:java.lang.Object
初始化的结果是2:Object
Exception in thread "main" org.hibernate.MappingException: Unknown entity: java.lang.Object
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:91)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:842)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:835)
at com.six.managerment.dao.impl.HibernateGenericDao.findById(HibernateGenericDao.java:89)
at com.six.managerment.dao.impl.HibernateGenericDao.main(HibernateGenericDao.java:134)
这是泛型dao实现类HibernateGenericDao
public class HibernateGenericDao<T> implements GenericDao<T>{
private Class<T> persistClass;
public HibernateGenericDao() {
persistClass =GenericUtil.getSuperClassGenericType(getClass());
}
@Override
public T findById(Serializable id) {
System.out.println("初始化的结果是1:"+persistClass.getName());
System.out.println("初始化的结果是2:"+persistClass.getSimpleName());
return (T)getSession().get(persistClass, id);
}
public static void main(String[] args) {
Users user=new Users();
HibernateGenericDao<Users> dao = new HibernateGenericDao<Users>();
Users users=dao.findById("8a80765041352deb0141352ded110001")
}
}
这是获取泛型类型
public class GenericUtil {
private GenericUtil(){
}
public static Class getSuperClassGenericType(Class clazz){
return getSuperClassGenericType(clazz, 0);
}
public static Class getSuperClassGenericType(Class clazz, int index){
//取得该类的实体类型
Type genType = clazz.getGenericSuperclass();
//判断该类是否是泛型类
if(!(genType instanceof ParameterizedType)) {
return Object.class;
}
//返回该类的实际参数类型
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
if( index >= params.length || index < 0){
return Object.class;
}
if(!(params[index] instanceof Class)){
return Object.class;
}
//返回该类的泛型类
return (Class)params[index];
}
}
总体提示Unknown entity: java.lang.Object,配置文件和映射都不错,就是老是出这个错误,不能获得实体类的实例
你说的有道理。我又创建下面的类继承HibernateGenericDao就可以了
public class UserDaoImpl extends HibernateGenericDao implements UserDao{
}
你说的将User.class作为一个构造方法参数传进去,我不太明白User.class作为哪一个构造函数的参数传进去,麻烦你能不能说的具体点
public class HibernateGenericDao implements GenericDao{
private Class persistClass;
public HibernateGenericDao(){
this(null);
}
public HibernateGenericDao(Class pclass) {
if(pclass==null)
persistClass =GenericUtil.getSuperClassGenericType(getClass());
else
this.persistClass=pclass;
}
如果你要直接用HibernateGenericDao:
HibernateGenericDao dao = new HibernateGenericDao(Users.class);
...main" org.hibernate.MappingException: Unknown entity: java.lang...
if(!(genType instanceof ParameterizedType)) { return Object.class;} 你在使用泛型DAO的时候,采用的是直接使用泛型DAO类:HibernateGenericDao<Users> dao = new HibernateGenericDao<Users>();所以,这个dao的类型仍然是HibernateGenericDao;使用getGenericSuperclass()方法得到的就是这个类的父类,Obj...
...main" org.hibernate.MappingException: Unknown entity: java.lang...
if(!(genType instanceof ParameterizedType)) { return Object.class;} 你在使用泛型DAO的时候,采用的是直接使用泛型DAO类:HibernateGenericDao<Users> dao = new HibernateGenericDao<Users>();所以,这个dao的类型仍然是HibernateGenericDao;使用getGenericSuperclass()方法得到的就是这个类的父类,Obj...
org.hibernate.MappingException: Unknown entity: java.lang.String...
1:你数据库的表里主键是 varchar 型的,而你配置文件是int型 2:配置文件只有一个主键,都没有其他的字段,多添加几个字段 3:数据库表里数据有问题,建议重新删掉数据,再进行操作 4:sql语句有问题
Unknown entity,该怎么解决
org.hibernate.MappingException: Unknown entity异常详细信息如下:org.hibernate.MappingException: Unknown entity: com.gis520.model.Emp_emp at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:628)at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:136...
org.hibernate.mappingException:Could not read mappings from resou...
那是由于你的hibernate.cfg.xml中指定的映射文件存在语法错误 以Customer.hbm.xml为例仔细检查一下文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-\/\/Hibernate\/Hibernate Mapping DTD\/\/EN""http:\/\/hibernate.sourceforge.net\/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <...
...by: org.hibernate.MappingException: Repeated column in mapping...
重复映射,insert和update的xml文件看看缺代码不
Exception in thread "main" org.springframework.beans.factory.Bean...
xml文件里你把sessionFactory 内容写错了吧 Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml] 提示你这 创建的 bean有问题
hibernate 异常 怎么解决
1.Hibernate 常见异常 net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resource:…异常时一般是因为映射文 件出现错误。当出现net.sf.hibernate.MappingException: Resource: … not found是因为XML配置文件没找到所致,有可能是放置目录不正确,或者没将其加入...
找不到action
exception is org.hibernate.MappingException 上次的错误栈,说根本错误原因是你的sessionFactory 初始化创建失败了,在 sessionFactory 上找原因,问题应该是hibernate的映射文件上,,可能定义错了,检查一下
org.hibernate.DuplicateMappingException: Duplicate class\/ent...
你这个错误是由于你在hibernate的映射文件中添加了两次对com.hxm.po.Address对象的映射。你检查一下hibernate.cfg.xml中是不是有两个这个类的映射文件。