今天写程序,老是出现“查询客户信息失败”,表名 is not mapping。很奇怪以前没出错,今天怎么错了!看来是数据库表名的原因,于是回头查找名字,这时才发现,DAOImpl中的查找方法
finds(){
String str="from system_setting"; //system_setting是数据库中的表名
……
}
而model层中的model和映射分别是:
model名字:SystemOption.java ,里面有所存信息的属性id,price等,并有对应的get()、set()方法;
model的映射名:SystemOption.hbm.xml
其内的映射:
<hibernate-mapping>
<class name="com.yuanit.app.model.SystemOption" table="system_setting" catalog="demo">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="price" type="java.lang.Double">
<column name="price" unique="true" />
</property>
……
</class>
</hibernate-mapping>
我原以为DAOImpl中str字符串对应的表名()就是数据库中所对应的数据库表名(system_setting),
现在知道错了,它对应的是model映射中的映射名:SystemOption,通过model的名字找到他的映射文件:SystemOption.hbm.xml
然后在映射文件中的table=“system_setting”才是数据库中的表名字!
所以:String str="from SystemOption";
这样理解就对了!但是不知道用术语怎么叙述!