首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Jpa createSQLQuery返回List<Object>而不是List<Employee>

Jpa createSQLQuery返回List<Object>而不是List<Employee>
EN

Stack Overflow用户
提问于 2020-08-26 16:53:42
回答 1查看 31关注 0票数 1

尝试执行sql查询以获得类"EmployeeCardOrderLink“的列表。但是这段代码总是返回一个对象列表。强制转换不起作用。我在这个列表中得到了正确的数据,但它只是一个对象。在调试中,我可以调用方法(根据我的类的接口建议),但是我得到了“类对象没有这样的方法”。我不能使用TypedQuery,因为我有旧的JPA版本,它不支持这个。

代码语言:javascript
代码运行次数:0
运行
复制
@Repository
public class EmployeeCardOrderLinkDAOImpl extends AbstractBasicDAO<EmployeeCardOrderLink> implements EmployeeCardOrderLinkDAO {
 //....
@Override
    public List<EmployeeCardOrderLink> getLinksByOrderNumber(Integer num) {
     List<EmployeeCardOrderLink> result = (ArrayList<EmployeeCardOrderLink>) getSessionFactory().getCurrentSession().createSQLQuery("select * from employee_card_order_links " +
                "where trip_order_id = " +  num).list();
       return result;
}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-26 19:29:04

如果您使用的是Session,则使用Hibernate (而不是JPA)。当然,Hibernate是JPA提供者。要使用JPA,你必须使用EntityManager和其他相关的东西。

这里不需要SQL。SQL总是返回对象列表(如果您不使用转换器来DTO对象)。

只需使用HQL (JPA中的JPQL)即可

获取所有EmployeeCardOrderLink

代码语言:javascript
代码运行次数:0
运行
复制
getSessionFactory().getCurrentSession()
    .createQuery("select link from EmployeeCardOrderLink link").list();

Query "from EmployeeCardOrderLink"也适用于Hibernate ( JPA将不起作用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63594034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档