如何使用hibernate获取一个或多个参考数据
我想使用SpringMvc+Spring+hibernate制作一个OrderDine web项目。 但似乎我在jsp页面上打印数据时遇到了一些问题 调试项目时(很抱歉,我无法发布调试图片) 我不明白为什么“mealOrders”的财产总是空的。。。 但我已经在表中插入了许多数据 以下是我的entitys和HQL查询 用户类 以及下面的HQL查询如何使用hibernate获取一个或多个参考数据,hibernate,spring-mvc,Hibernate,Spring Mvc,我想使用SpringMvc+Spring+hibernate制作一个OrderDine web项目。 但似乎我在jsp页面上打印数据时遇到了一些问题 调试项目时(很抱歉,我无法发布调试图片) 我不明白为什么“mealOrders”的财产总是空的。。。 但我已经在表中插入了许多数据 以下是我的entitys和HQL查询 用户类 以及下面的HQL查询 @SuppressWarnings("unchecked") @Override public List<User> FindAllUse
@SuppressWarnings("unchecked")
@Override
public List<User> FindAllUsers() {
Session session = sessionFactory.openSession();
org.hibernate.Query query = session.createQuery("from User u left join u.mealOrders");
return (List<User>) query.list();
}
@SuppressWarnings(“未选中”)
@凌驾
公共列表FindAllUsers(){
Session Session=sessionFactory.openSession();
org.hibernate.Query Query=session.createQuery(“从用户u向左加入u.mealOrders”);
return(List)query.List();
}
和我的jsp页面(它无法打印数据)
${user.userName}
${user.userID}
如何在jsp页面上打印数据?我不明白,既然已经有了映射,为什么还需要这个查询。如果您给出简单的select语句,这可能会起作用。避免在查询中加入join
你的意思是你不能打印用户的测量值?你有任何异常吗?没有任何异常,但我不知道如何编写代码以便在jsp页面上显示数据。感谢帮助:)查看使用了FetchType.LAZY,可能是他应该将其修改为“渴望”,如果在事务之外访问它现在可以工作了,原因是我无法处理“LAZY”,谢谢你的帮助:)
@Entity
@Table(name="MealOrder")
public class MealOrder implements Serializable {
private static final long serialVersionUID = 1L;
private Long mealOrderID;
private int orderState;
//private Long userID;
private String userName;
private String postion;
private String telePhone;
private String userLocation;
private Date orderTime;
private String restaurantName;
private int restaurantID;
private String supplyTimeType;
private Date beginSupplyTime;
private Date endSupplyTime;
private Date beginSupplyDate;
private Date endSupplyDate;
private int mealMenuID;
private String mealMenuName;
private String mealPackageName;
private int mealPackageID;
private float mealPackagePrice;
private User user;
@Id
@GeneratedValue
@Column(name = "ID")
public Long getMealOrderID() {
return mealOrderID;
}
public void setMealOrderID(Long mealOrderID) {
this.mealOrderID = mealOrderID;
}
...I hide some useless propertys
@ManyToOne(fetch=FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "UserID")
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@SuppressWarnings("unchecked")
@Override
public List<User> FindAllUsers() {
Session session = sessionFactory.openSession();
org.hibernate.Query query = session.createQuery("from User u left join u.mealOrders");
return (List<User>) query.list();
}
<c:forEach items="${users}" var="user">
<tr>
<td>${user.userName}</td>
<td>${user.userID}</td>
</tr>
</c:forEach>