Java 休眠选择字符串而不是对象

Java 休眠选择字符串而不是对象,java,mysql,hibernate,Java,Mysql,Hibernate,我对冬眠世界还不熟悉,我有一个自己无法解决的问题。请友善一点 我所拥有的: public class Category implements java.io.Serializable { private Integer id; private String name; private String description; public Category() { } public Category(String name, Stri

我对冬眠世界还不熟悉,我有一个自己无法解决的问题。请友善一点

我所拥有的:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
  • Netbeans IDE 8.0.2
  • Mysql数据库(easyPHP)和一些表
我想要什么:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
  • 选择类别(表),其中有3条记录,分别为idnamedescription,并使用EL在jsp中显示它们(namedescription
我的分类类别:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
我的getCategories方法:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
我的控制器:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
我的视图(jsp):

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
当我显示${cat}时,它会说:

java.lang.String
java.lang.String
java.lang.String
com.company.Category@7136faa
com.company.Category@25636faa
com.company.Category@83baeaa
更新:

public class Category  implements java.io.Serializable {


     private Integer id;
     private String name;
     private String description;

    public Category() {
    }

    public Category(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public Category(String name, String description) {
       this.name = name;
       this.description = description;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
            public static List getAllCategories(){
               Session session = HibernateUtil.getSessionFactory().getCurrentSession();
               Transaction tx = session.beginTransaction();
               List results = session.createCriteria(Category.class, "category")
               .list();
               tx.commit();
               return results; 
            }
                    List categories = CategoriesManagement.getAllCategories();
                    map.addAttribute("categories", categories);
<c:forEach var="cat" items="${categories} ">
   ${cat.name}
</c:forEach>
当我在类别中重新定义toString()方法时,如下所示:

public toString(){
   return "foo";
}
我得到:

[foo
foo
foo]

提前谢谢。

用这个:
我知道它很好,9个小时后我发现空间在
是错误, 我应该这样做:

谢谢@Reimeus,我用输出和我的Category类更新了帖子。您可以将值打印为,${cat.name}和${cat.description}。这就是你想要实现的吗?是的,Prerak,但我什么也得不到……我想说,在从控制器返回列表之前,先打印出列表的内容。当我更新我的答案时,hibernate使用toString方法并返回返回的值。现在我的列表中有三个“foo”字符串。它应该做的是选择类别类型的3个对象。