问题提示:
[b][size=large]异常1:org.hibernate.PropertyNotFoundException: Could not find a getter for attribute [/size][/b]
问题分析:
1)getter()方法写错了,没有按照javaBean的规则写.
2)*.hmb.xml中的属性名和pojo中的是否一致.注意:属性名是否多了空格.
启示:.hbm.xml里的排列最好跟数据库表里的排列一样!最好不要乱改变位置!否则会出莫名其妙的错误!
3)字段的取名要注意。比如数据库中的字段为M_R_ID,映射到hbm.xml为mRId,那么产生的POJO也是mRId,自动产生的getter方法为:getMRId();相应的setter方法一致,这样就会抛出上面所述异常,这个应该是hibernate的模板格式问题。所以尽量要避免这样的命名。
解决方法:
1)换做getmRId(); 问题可解决,没有抛出异常,能取值。
2)修改数据库字段名。这个最好,不会产生以后的不确定因素。
再例如:在求道路对应表算法中,如果早JavaBean中,把起始节点和终止节点分别命名为:sNode和eNode,那末相应的get和set方法分别是:
那末在运行时就会出现上述异常。正确的命名是:snode enode
相应的JavaBean代码如下:
[size=large][b]异常2:org.hibernate.QueryException: could not resolve property: age of: cn.com.newcom.User [from cn.com.newcom.User user where user.age > :minAge and user.username like :userName][/b][/size]
出现异常的原因:HQL语句写法错误
出现上述异常的HQL书写形式如下:
解决办法:
改写HQL语句,改写后的HQL语句如下:
或者是:
继续添加。。。。
[b][size=large]异常1:org.hibernate.PropertyNotFoundException: Could not find a getter for attribute [/size][/b]
问题分析:
1)getter()方法写错了,没有按照javaBean的规则写.
2)*.hmb.xml中的属性名和pojo中的是否一致.注意:属性名是否多了空格.
启示:.hbm.xml里的排列最好跟数据库表里的排列一样!最好不要乱改变位置!否则会出莫名其妙的错误!
3)字段的取名要注意。比如数据库中的字段为M_R_ID,映射到hbm.xml为mRId,那么产生的POJO也是mRId,自动产生的getter方法为:getMRId();相应的setter方法一致,这样就会抛出上面所述异常,这个应该是hibernate的模板格式问题。所以尽量要避免这样的命名。
解决方法:
1)换做getmRId(); 问题可解决,没有抛出异常,能取值。
2)修改数据库字段名。这个最好,不会产生以后的不确定因素。
再例如:在求道路对应表算法中,如果早JavaBean中,把起始节点和终止节点分别命名为:sNode和eNode,那末相应的get和set方法分别是:
public int getSNode() {
return sNode;
}
public void setSNode(int sNode) {
this.sNode = sNode;
}
public int getENode() {
return eNode;
}
public void setENode(int eNode) {
this.eNode = eNode;
}
那末在运行时就会出现上述异常。正确的命名是:snode enode
相应的JavaBean代码如下:
public int getSnode() {
return snode;
}
public void setSnode(int snode) {
this.snode = snode;
}
public int getEnode() {
return enode;
}
public void setEnode(int enode) {
this.enode = enode;
}
现在如果其它配置都正确的话,上述异常就会消失了。
[size=large][b]异常2:org.hibernate.QueryException: could not resolve property: age of: cn.com.newcom.User [from cn.com.newcom.User user where user.age > :minAge and user.username like :userName][/b][/size]
出现异常的原因:HQL语句写法错误
出现上述异常的HQL书写形式如下:
<query name="queryUser_byAgeAndName">
<![CDATA[
from User user where user.age > :minAge and user.username like :userName]]>
</query>
解决办法:
改写HQL语句,改写后的HQL语句如下:
<query name="queryUser_byAgeAndName">
<![CDATA[
from User user where age > :minAge and username like :userName
]]>
</query>
或者是:
<query name="queryUser_byAgeAndName">
<![CDATA[
from User where age > :minAge and username like :userName
]]>
</query>
继续添加。。。。