如何只返回Object而不是List of objects?

时间:2013-11-26 01:48:50

标签: hibernate list

我有一个像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) {


}

1 个答案:

答案 0 :(得分:0)

尝试使用

Hibernate :会话的get()方法(http://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Session.htmlhttp://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.htmlhttp://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()