您的位置:首页 > 编程语言 > Java开发

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

2014-02-13 00:06 525 查看
在使用Atomikos写demo的时候,用spring整合hibernate写一个查询,报错:org.hibernate.TypeMismatchException: Provided id of the wrong type for class aniyo.jta.atomikos.domain.BankAccount. Expected: class java.lang.Integer, got class java.lang.String方法如下:Java代码

@Override

public BankAccount getByUsername(String username) {

return (BankAccount) this.getSession().get(BankAccount.class, username);

}

因为没怎么用过hibernate,很多东西也不熟悉,到网上查了一下相关资料,后面才发现,this.getSession().get()方法,是通过id来查询的,所以这里会报错说,提供id类型错误,我这里传的是一个String的username,所以这里要通过username查询,可能过createQuery来查;最后修改如下:Java代码

@Override

@SuppressWarnings("unchecked")

public BankAccount getByUserName(String username) {

List<BankAccount> list = this.getSession().createQuery(

"select t from BankAccount t where t.username=:userName")

.setParameter("userName", username).list();

return list.isEmpty() ? null : list.get(0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring hibernate
相关文章推荐