【发布时间】:2016-05-31 13:11:46
【问题描述】:
我得到了包含几列的表格,我希望表格将显示数据库中的所有行。但是控制台说:javax.persistence.NonUniqueResultException: result returns more than one elements
这是一个代码:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("onlineshop");
EntityManager entityManager = entityManagerFactory.createEntityManager();
Query query = entityManager.createNativeQuery("SELECT iduser FROM lastloggeduser ORDER BY idlastloggeduser DESC LIMIT 1");
String s = query.getSingleResult().toString();
if (s != null){
Query selectAll = entityManager.createQuery("FROM Product WHERE iduser=:iduser");
selectAll.setParameter("iduser", s);
System.out.println(s);
Product p = (Product) selectAll.getSingleResult();
Product product = new Product();
product.setID(p.getID());
product.setProduct(p.getProduct());
product.setName(p.getName());
product.setCompany(p.getCompany());
product.setType(p.getType());
product.setPrice(p.getPrice());
products.add(product);
}
JSP:
<c:forEach var="product" items="${products}">
<tr>
<td>${product.getID()}</td>
<td><img src="${product.getProduct()}" /></td>
<td>${product.getName()}</td>
<td>${product.getCompany()}</td>
<td>${product.getType()}</td>
<td>${product.getPrice()}$</td>
<td><form action="/OnlineShop/cart/cart.html?selectedItem=${product.getID()}" method="post"><input type="submit" value="Delete"/></form></td>
</tr>
</c:forEach>
当我添加这个时:
selectAll.setMaxResults(1);
它工作正常,但在表格中只出现一行,我应该怎么做才能显示所有行?
【问题讨论】: