ここにコードの2つのクラスがあります
public class LoginServiceImplementation implements LoginService {
public boolean validateLogin(Login login)
{
LoginDao loginDao=DaoFactory.getLoginDao();
boolean b=loginDao.validateLogin(login);
System.out.println("id=="+login.getLoginId()+" uname=="+login.getuName()+" pass== "+login.getPassword());// values reset to null
return b;
}
}
public class LoginDaoImplementation implements LoginDao {
@Override
public Login validateLogin(Login login) {
Session session= Hibernate.getHibernateSession();
Query query= session.createQuery("from Login where uName= 'user' and password= 123");
//query.setParameter("uname", login.getuName());
//query.setParameter("pwd", login.getPassword());
//System.out.print(login.getuName());
//System.out.print(login.getPassword());
try
{
List<Login> logins=query.list();
System.out.print(logins.size());
if(logins.size()>0)
{
Login l=new Login();
l=logins.get(0);
login=l;
System.out.println("id=="+login.getLoginId()+" uname=="+login.getuName()+" pass== "+login.getPassword());/// ALL values getting printed
return login;
}
session.close();
return null;
}
catch(HibernateException x)
{
x.printStackTrace();
session.close();
return null;
}
}
}
serviceImplementation クラスから DaoImplementation クラスの validatemethod を呼び出すと、DaoImplementation クラスはパラメーターとして渡されるログイン オブジェクトに値を設定しますが、serviceimplementation クラスでは、すべての値が null に設定された同じ古いオブジェクトを取得しています。理由と解決策を添えて返信してください。ありがとうございました