在hibernate 3.2环境下,在customer表中customerId为自动增长的主键,是映射为long类型。我按表中的phoneNumber字段为条件查找出符合的customer对象,删除时为delete(customer),但却抛出异常:Provided id of the wrong type. Expected: class java.lang.Long, got class java.lang.String。说ID是错误的类型,期望long类型但得到的是String。我郁闷啊,我又没有以customerId为条件查找,是以phoneNumber为条件而且它是String类型的。
<hibernate-mapping>
<class name="com.mobileBusiness.pojo.Customer" table="CUSTOMER" schema="JEVON">
<id name="customerId" type="java.lang.Long">
<column name="CUSTOMER_ID" precision="22" scale="0" />
<generator class="sequence">
<param name="sequence">CUSTOMERID</param>
</generator>
</id>
<property name="customerName" type="java.lang.String">
<column name="CUSTOMER_NAME" length="50" />
</property>
<property name="customerAddress" type="java.lang.String">
<column name="CUSTOMER_ADDRESS" length="200" />
</property>
<property name="phoneNumber" type="java.lang.String">
<column name="PHONE_NUMBER" length="11" />
</property>
<property name="customerPwd" type="java.lang.String">
<column name="CUSTOMER_PWD" length="6" />
</property>
<property name="balance" type="java.lang.Float">
<column name="BALANCE" precision="8" />
</property>
<property name="buildDate" type="java.lang.String">
<column name="BUILD_DATE" length="20" />
</property>
<property name="customerType" type="java.lang.String">
<column name="CUSTOMER_TYPE" length="50" />
</property>
</class>
</hibernate-mapping>
manageCustomer.delete(customer)这是删除
下面是manageCustomer中的查询方法
return (Customer)getHibernateTemplate().get("com.mobileBusiness.pojo.Customer",phoneNumber);
List<Customer> list=getHibernateTemplate().find("from Customer c where c.phoneNumber= ?",phoneNumber);
for(Customer c : list){
getHibernateTemplate().delete(c);
}
findByNumber()是怎么写的啊,是楼上说的get()吗
嗯 就是get("com.mobileBusiness.pojo.Customer",phoneNumber);
phoneNumber是Customer中的属性