当前位置: 首页 > 知识库问答 >
问题:

如何在JPQL或HQL中只检索一个实体的某些字段?JPQL或HQL中ResultSet的等价物是什么?

强宾白
2023-03-14
query = entityManager.createQuery("select c from Category c");
List<Category> categories = query.getResultList();

共有1个答案

姬凡
2023-03-14

在HQL中,可以使用list()函数获取包含结果行的Object[]数组的列表:

Query query = session.createQuery("select c.id,c.name from Category c");
List<Object[]> rows = query.list();

在返回的数组中,1-st元素将是id,second-name。

for (Object[] row: rows) {
    System.out.println(" ------------------- ");
    System.out.println("id: " + row[0]);
    System.out.println("name: " + row[1]);
}

如果您想要使用Hibernate的标准API,那么您应该使用投影。

List<Object[]> rows = entityManager.createQuery(queryString).getResultList();
 类似资料:
  • 问题内容: 在JPQL中,我可以通过以下方式检索实体: 但是,如果我想检索Category实体的id和name字段(仅),则需要像对象这样的东西,通过它我可以说:和。如何在不检索整个实体的情况下做到这一点? 基本上,对于如何检索像查询的信息:? 问题答案: 在HQL中,可以使用list()函数获取包含结果行的Object []数组的列表: 返回数组中的第一个元素将是id,第二个-名称。 如果要使用

  • 问题内容: 在Hibernate 3中,有没有办法等效于以下HQL中的MySQL限制? 如果可能,我不想使用setMaxResults。这肯定在较旧的Hibernate / HQL版本中是可行的,但似乎已经消失了。 问题答案: 几年前,当有人问到为什么它在Hibernate 2中有效但在Hibernate 3中无效时,此消息发布在Hibernate论坛上: 在HQL中, 从不 支持Limit 子句

  • 问题内容: 使用Criteria或HQL有什么利弊?Criteria API是在Hibernate中表达查询的一种很好的面向对象的方式,但是有时候Criteria Queries比HQL更难以理解/构建。 您何时使用标准以及何时使用HQL?在哪种用例中,您更喜欢什么?还是只是口味问题? 问题答案: 我最喜欢动态查询的条件查询。例如,动态添加一些订购或根据某些参数省去某些零件(例如限制)要容易得多。

  • 我有以下实体: 我有以下HQL查询,其中我选择了CityExpert的子集: 但是,由于CityExpert中的字段太多,我不想选择所有字段。因此,我将查询更改如下: 然而,显然,我们无法在这样的实体中选择一对多字段,因为我在前面的查询中得到了一个MySQLSyntaxErrorException(参考这个问题)。因此,我将查询更改为: 但是,这次结果变成了

  • persistence.xml文件 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd“>org.hibernate.ejb.hibernatePersistence

  • 我是SpringWebFlux反应型新手。我使用R2DBC postgresql。我有这样一个存储库: 现在我想通过许多复杂的条件为查询添加自定义方法: 我的实施: 我的问题在上面的代码中: 如何获得EntityManager? 如何从我构建的HQL查询中获取Flux? 当我问这些问题时,我的意思是“如何用Spring反应式/r2dbc方式实现”,而不是“如何用JDBC实现这种常规方式”