我的項目設置是Spring MVC的,Hibernate的4.3.8.Final,PostgreSQL的數據庫,並得到以下錯誤:QueryParameterException無法找到命名爲無實體參數
org.hibernate.QueryParameterException: could not locate named parameter [username]
public UserInfo findUserInfo(String userName) {
String sql = "Select new " + UserInfo.class.getName() + "(u.username,u.password) "//
+ " from " + User.class.getName() + " u where u.username=(:username)";
Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery(sql).setParameter("username", userName);
return (UserInfo) query.uniqueResult();
}
隨着的UserInfo是無實體:
public class UserInfo {
private String username;
private String password;
public UserInfo() {
}
public UserInfo(String username, String password) {
this.username = username;
this.password = password;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
感謝您的幫助。但是UserInfo是普通的類(非實體),User是映射到表用戶的實體。 –
@GiangPhanThanhGiang然後從你的軟件包中使用'String sql =「Select new」+ UserInfo.class.getName()+「(u.username,u.password)」 +「。 + User.class.getName()+「u where u.username =:username」;' – Mitchapp
感謝您的幫助。我發現我的問題。因爲我沒有用Hibernate來聲明我的實體。 –