尝试执行sql查询以获得类"EmployeeCardOrderLink“的列表。但是这段代码总是返回一个对象列表。强制转换不起作用。我在这个列表中得到了正确的数据,但它只是一个对象。在调试中,我可以调用方法(根据我的类的接口建议),但是我得到了“类对象没有这样的方法”。我不能使用TypedQuery,因为我有旧的JPA版本,它不支持这个。
@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;
}}
发布于 2020-08-26 11:29:04
如果您使用的是Session
,则使用Hibernate (而不是JPA
)。当然,Hibernate是JPA
提供者。要使用JPA
,你必须使用EntityManager
和其他相关的东西。
这里不需要SQL。SQL总是返回对象列表(如果您不使用转换器来DTO
对象)。
只需使用HQL
(JPA
中的JPQL
)即可
获取所有EmployeeCardOrderLink
getSessionFactory().getCurrentSession()
.createQuery("select link from EmployeeCardOrderLink link").list();
Query "from EmployeeCardOrderLink"
也适用于Hibernate ( JPA将不起作用)。
https://stackoverflow.com/questions/63594034
复制相似问题