Jpa createSQLQuery返回列表<;对象>;而不是列表<;员工>;
尝试进行sql查询以获取“EmployeeCardOrderLink”类的列表。但这段代码总是返回一个对象列表。石膏不起作用。我在这个列表中得到了正确的数据,但它只是一个对象。在调试中,我可以调用方法(根据类的接口),但随后我得到“类对象并没有这样的方法”。我不能使用TypedQuery,因为我有旧的JPA版本,它不支持这个Jpa createSQLQuery返回列表<;对象>;而不是列表<;员工>;,sql,hibernate,jpa,dao,Sql,Hibernate,Jpa,Dao,尝试进行sql查询以获取“EmployeeCardOrderLink”类的列表。但这段代码总是返回一个对象列表。石膏不起作用。我在这个列表中得到了正确的数据,但它只是一个对象。在调试中,我可以调用方法(根据类的接口),但随后我得到“类对象并没有这样的方法”。我不能使用TypedQuery,因为我有旧的JPA版本,它不支持这个 @Repository public class EmployeeCardOrderLinkDAOImpl extends AbstractBasicDAO<Empl
@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;
}}
@存储库
公共类EmployeeCardOrderLinkDAOImpl扩展了AbstractBasicDAO实现EmployeeCardOrderLinkDAO{
//....
@凌驾
公共列表getLinksByOrderNumber(整数){
列表结果=(ArrayList)getSessionFactory().getCurrentSession().createSQLQuery(“从员工\卡片\订单\链接中选择*”+
“where trip_order_id=“+num).list();
返回结果;
}}
如果您使用的是会话
,则使用Hibernate(而不是JPA
)。Hibernate当然是JPA的提供者。您必须使用EntityManager
和其他相关的东西才能使用JPA
这里不需要SQL。SQL总是返回对象列表(如果不使用transformers toDTO
对象)
只需使用HQL
(JPA
中的JPQL
)
要获取所有EmployeeCardOrderLink
getSessionFactory().getCurrentSession()
.createQuery("select link from EmployeeCardOrderLink link").list();
查询“来自EmployeeCardOrderLink”
也适用于Hibernate(对于JPA不起作用)