java hibernate:could not resolve property: nationNum of: com.shq.db.Department

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java hibernate:could not resolve property: nationNum of: com.shq.db.Department相关的知识,希望对你有一定的参考价值。

nationNum根本就不是这个Department类的属性,是另外一个类的属性,不知道为什么会出现在这里,数据库里面有两个表分别对应两个类,需要指定对哪个表进行查询么?应该是我传什么对象进去就会自动关联到那张表啊!
求大神解答
代码:
<hibernate-mapping>
<class name="com.shq.db.Department" table="DEPARTMENT">
<id name="id" type="java.lang.Integer">
<column name="ID" length="8" />
<generator class="increment"></generator>
</id>
<property name="depNum" type="java.lang.String">
<column name="DEP_NUM" length="30">
<comment>部门编号</comment>
</column>
</property>
<property name="depName" type="java.lang.String">
<column name="DEP_NAME" length="60">
<comment>部门名称</comment>
</column>
</property>
</class>
</hibernate-mapping>

实体类:
public class Department implements java.io.Serializable
private Integer id;
private String depNum;
private String depName;
get set方法略

配置文件:
<mapping resource="com/shq/db/Department.hbm.xml" />

异常语句:
public class GenericDaoImpl<T,PK extends Serializable> implements GenericDao<T,PK>
private Class<T> clazz;
//GenericDaoImpl的无参构造函数
public GenericDaoImpl()
//得到GenericDaoImpl<T,PK>中T的实际类名
clazz=(Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];


public List<T> SelectByLikeList(T entity, int currentpage, int pagesize,String orderName,boolean flag)
//调用工具类SessionUtil类得到Session对象
Session session=SessionUtil.getSession();
//得到Transaction事务对象并开启事务
Transaction tx=session.beginTransaction();
List<T> list=null;
try
//通过Session创建Criteria对象
Criteria criteria=session.createCriteria(clazz);
//向Criteria对象添加以参数entity创建的查询添加示例(模糊查询条件)
criteria.add(Example.create(entity).enableLike());
//根据flag的值判是以断排序字段orderName做升序还是降序排列,true为降序,false为降序
if(flag)
criteria.addOrder(Order.desc(orderName));//降序

else
criteria.addOrder(Order.asc(orderName));//升序

//设置分页信息currentpage为当前页,pagesize为每页取得条数
criteria.setFirstResult((currentpage-1)*pagesize).setMaxResults(pagesize);
list=criteria.list();
//提交事务
tx.commit();

catch(HibernateException e)
//输出错误信息
System.out.println(e.toString());
//事务回滚
tx.rollback();

return list;


就是list=criteria.list();这句抛出的异常!

查看 Department.hbm.xml 中是否有nationNum 字段,有的话去掉就ok了追问

贴出来的第一段代码就是Department.hbm.xml,根本就没有。。。

追答

你用ctrl+H查询下nationNum 的所有配置的地方。然后贴出来

参考技术A 仔细检查下你的配置文件,追问

配置文件除了给出来的那句话之外还有什么属性是可以影响实体类的?这个配置文件除了连接字符串、用户名、密码之外其它的几乎都是连接池的配置

参考技术B 是不是别的地方的代码抛出的错?追问

我刚刚用输出语句测试过,输出语句在这句话前面能打印出来,但是后面就不行了

追答

哦,那还真是这行代码出的错。我也奇怪,如果明天没解决我可远程看下

参考技术C 蛋疼的问题,关了重启试试 参考技术D 妖问题,需要多调试看看

以上是关于java hibernate:could not resolve property: nationNum of: com.shq.db.Department的主要内容,如果未能解决你的问题,请参考以下文章

ssh框架 Could not commit Hibernate transaction问题

org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.impl.brid

解决Exception:Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassD

java hibernate:could not resolve property: nationNum of: com.shq.db.Department

数据库异常整理:org.hibernate.QueryException: could not resolve property: “mStation”

org.hibernate.exception.GenericJDBCException: could not execute statement