Java 将输出作为对象而不是字符串获取
在下面的程序中,我得到的输出是Java 将输出作为对象而不是字符串获取,java,hibernate,Java,Hibernate,在下面的程序中,我得到的输出是Hibernate。UserDetails@224b4d61 我应该如何解决此问题? 以下是我正在使用的两个程序,我需要打印username 休眠测试: public class HibernateTest { public static void main(String[] args) { SessionFactory sessionfactory = new Configuration().configure("Hibernat
Hibernate。UserDetails@224b4d61
我应该如何解决此问题?
以下是我正在使用的两个程序,我需要打印username
休眠测试:
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);
}
}
}
@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;
}
}
您当前正在尝试打印整个UserDetails对象,但我认为您正在尝试只打印用户名
System.out.println("Name of User is : " + u.getUserName());
你应该重写这个命令
实现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() + ")"
}