我有一个像Product(id,productName,...... 21其他列)这样的表。使用hibernate,java代码如下:
@Entity
public class Products implements java.io.Serializable {
int id;
String productName;
String productCategory;
// getter & setter
}
要根据[id和productName]获取项目列表,代码如下所示,并且工作正常:
public List<Products> getProducts(int id, String productName) {
// session and transaction stuffs
String queryString = "from Products p WHERE p.id = ? and p.productName = ?";
Query query = s.createQuery(queryString);
query.setParameter(0,id);
query.setParameter(1,productName);
List list = query.list();
// comiting and closing
return list;
}
但是如果我试图在没有List的情况下得到结果,那么实现它就会出错。任何人都可以给我提示我需要实施的方式。我使用强制转换来实现这一点,但我仍然遇到错误。我试图通过以下方式实现:
public Products getProducts(int id, String productName) {
}
答案 0 :(得分:0)
尝试使用
Hibernate :会话的get()方法(http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Session.html) http://examples.javacodegeeks.com/enterprise-java/hibernate/retrieve-object-by-id-in-hibernate/
JPA :EntityManager的find()方法(http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html) http://www.objectdb.com/java/jpa/persistence/retrieve
按照定义list()API将查询结果作为List返回,因此您可以尝试从列表中返回第一个元素或获取单个结果并使用
进行投射Hibernate :Query.uniqueResult() http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/Query.html#uniqueResult()
JPA :Query.getSingleResult() http://docs.oracle.com/javaee/5/api/javax/persistence/Query.html#getSingleResult()