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条记录,分别为id、name和description,并使用EL在jsp中显示它们(name和description)
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个对象。