Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate JPA在查询中实例化_Hibernate_Jpa_Jpa 2.0 - Fatal编程技术网

Hibernate JPA在查询中实例化

Hibernate JPA在查询中实例化,hibernate,jpa,jpa-2.0,Hibernate,Jpa,Jpa 2.0,我使用JPA2和Hibernate3.6作为提供程序 我有一些这样的代码: final List<Object[]> result = entityManager.createQuery("SELECT qt, tt FROM ...").getResultList(); 我有一个转换器,它将Object[]的列表转换为SimpleClass的列表,SimpleClass包含我的qt和tt实体 在JPA2中可以做这样的事情吗?在C和linq中,这是可能的 final List<

我使用JPA2和Hibernate3.6作为提供程序

我有一些这样的代码:

final List<Object[]> result = entityManager.createQuery("SELECT qt, tt FROM ...").getResultList();
我有一个转换器,它将Object[]的列表转换为SimpleClass的列表,SimpleClass包含我的qt和tt实体

在JPA2中可以做这样的事情吗?在C和linq中,这是可能的

final List<SimpleClass> result = entityManager.createQuery("SELECT new SimpleClass(qt, tt) FROM ...").getResultList();

谢谢。

如果您已经映射了实体,您应该能够:

List<SimpleClass> result = entityManager
    .createQuery("select s from SimpleClass s", SimpleClass.class)
    .getResultList();

SimpleClass不是一个实体,它只是一个包含其他两个实体的包装器。也许您应该运行两个JPQL查询,并在SimpleClass实例中组合结果。在这种情况下,你可以免费获得OR映射。这是一个相关的问题/答案:你可以看看这个相关的答案,嗯,有趣的问题。我首先想到使用@MappedSuperclass作为包装器,但看起来您无法对其进行查询。我认为好的旧作文会起到借壳的作用。@landal79这正是我要寻找的,我会尽力做出反馈。谢谢。好的,这是一个很好的答案,但遗憾的是我在查询中使用了一些fetch,jpa抱怨:查询指定了join fetching,但是获取的关联的所有者不在选择列表中