1) Vous utilisez HQL, vous devez donc comprendre que vous ne pouvez pas donner de noms de colonnes qui se trouvent dans la base de données dans les projections de la requête HQL
String hql = "select user_id from login where user_name= :username and
password= :password";
Ici, dans votre classe de connexion, vous n'avez pas de champ en tant que user_id
et vous avez donné user_id
dans les projections.HQL mappe la classe avec la base de données, donc la classe de connexion se connectera à la table et le champ userId sera la colonne user_id dans la base de données.Et ce que vous avez écrit est une requête SQL simple et non une requête HQL.
Veuillez utiliser cette requête HQL.
String hql="Select log.userId from Login log where log.username=:username and log.password=:password"
Ici, log est un nom d'alias comme nous le faisons en Java ordinaire.
Login log=new Login()
log.userId