我的项目设置是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来声明我的实体。 –