org.hibernate.TypeMismatchException:Provided id of the wrong type for class ...

报错:org.hibernate.TypeMismatchException: Provided id of the wrong type for class …

一、报错情景:在Dao中使用hibernateTemplate从数据库查询一条数据,函数为:

 	public User findByUsername(String username) {
		return this.hibernateTemplate.get(User.class, username);
 	}

我是想通过实体User对应表中的字段username获取到某条User记录。

二、错误修正:

	public List<User> findByUsername(String username) {
  		List<User> users = this.hibernateTemplate.find("from User as u where u.username=?", username);
  		return users;
	}

修改后用sql语句查询查询这些User记录。

三、报错原因:

hibernateTemplate.get(User.class, username);

这种查询方式的username必须是对应表的主键。而我的数据表里,参数username并非主键,导致的类型不匹配异常。
换一种方法:hibernateTemplate.find(“from User as u where u.username=?”, username);即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值