Получение вывода как объекта вместо строки - PullRequest
0 голосов
/ 27 мая 2018

В следующей программе я получаю вывод как Hibernate.UserDetails@224b4d61

Как мне это исправить?

Ниже приведены две программы, которые я использую иМне нужно распечатать username

HibernateTest:

public class HibernateTest {
    public static void main(String[] args) 
    {
        SessionFactory sessionfactory = new Configuration().configure("Hibernate/hibernate.cfg.xml").buildSessionFactory();
        Session session = sessionfactory.openSession();
        session.beginTransaction();

        Criteria criteria = session.createCriteria(UserDetails.class);
        criteria.add(Restrictions.eq("UserName","User5"));
        List<UserDetails> user =(List<UserDetails>) criteria.list();
        session.getTransaction().commit();
        session.close();
        for(UserDetails u : user)
        {
            System.out.println("Name of User is : "+u);
        }
    }
}

UserDetails:

@Entity
public class UserDetails 
{
    @Id @GeneratedValue(strategy=GenerationType.AUTO) 
    private int UserId;
    private String UserName;

    public int getUserId() {
        return UserId;
    }
    public void setUserId(int userId) {
        UserId = userId;
    }
    public String getUserName() {
        return UserName;
    }
    public void setUserName(String userName) {
        UserName = userName;
    }
}

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Вы должны переопределить метод toString .

@Entity
public class UserDetails 
{
    @Id @GeneratedValue(strategy=GenerationType.AUTO) 
    private int UserId;
    private String UserName;

    public int getUserId() {
        return UserId;
    }
    public void setUserId(int userId) {
        UserId = userId;
    }
    public String getUserName() {
        return UserName;
    }
    public void setUserName(String userName) {
        UserName = userName;
    }

    public String toString() {
      return getUserName() + " (id = " + getUserId().toString()  + ")"
}
0 голосов
/ 27 мая 2018

В настоящее время вы пытаетесь напечатать весь объект UserDetails, но я думаю, что вы пытаетесь напечатать только имя пользователя ...

System.out.println("Name of User is : " + u.getUserName());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...