错误提示:
org.hibernate.PropertyNotFoundException: Could not find a getter for sMarathon in class com.honsto.
我个人在这遇到种错误时的原因大多是以下三种原因:
1、未编写实体属性的get方法;
解决方法:添加get方法。
2、变量的实体属性名称不规范,如我使用的变量为sMarathon,去get方法名则为getSMarathon(),因此程序识别的第四个字符开始的SMarathon自然就Could not find a getter for sMarathon;
解决方法:规范命名,实体属性名称的第二个字符不要使用大写字母。
3、hibernate映射文件中实体属性名称与你命名的属性名称不同,如我在SMarathonMap.hbm.xml映射文件中命名为SMarathon:
<many-to-one not-null="false" insert="false" update="false" fetch="select" not-found="ignore"
class="com.honsto.saishitong.domain.SMarathon" lazy="false" name="sMarathon">
<column name="marathonCompetitionId" />
</many-to-one>
而在SMarathonMap.java文件中命名为private SMarathon smarathon;则也会出现如上错误。
解决方法:使两者统一并规范。
<many-to-one not-null="false" insert="false" update="false" fetch="select" not-found="ignore"
class="com.honsto.saishitong.domain.SMarathon" lazy="false" name="sMarathon">
<column name="marathonCompetitionId" />
</many-to-one>
以上只是我个人所遇到的情况,原因可能不完全,解决方法也可能不唯一或是不适用,望大家谅解。