1)HQLを使用しているため、HQLクエリのプロジェクションでデータベースにある列名を指定できないことを理解する必要があります
String hql = "select user_id from login where user_name= :username and
password= :password";
ここで、Loginクラスには、user_id
というフィールドはありません。 user_id
を指定しました HQLはクラスをデータベースにマップするため、Loginクラスはログインテーブルになり、userIdフィールドはデータベースのuser_id列になります。作成したのはHQLクエリではなくプレーンSQLクエリです。
このHQLクエリを使用してください。
String hql="Select log.userId from Login log where log.username=:username and log.password=:password"
ここで、ログはプレーンJavaの場合と同じようにエイリアス名です。
Login log=new Login()
log.userId