JPA entitymanager运行本机sql查询以从表中获取所有内容

JPA entitymanager运行本机sql查询以从表中获取所有内容,sql,database,jpa,entitymanager,hibernate-criteria,Sql,Database,Jpa,Entitymanager,Hibernate Criteria,我需要做的是运行一段原生sql查询来选择所有内容并获取 从特定表中输出数据 我的应用程序是基于SpringHibernate的web应用程序。这是我的密码: DAOserviceImpl: @Service public class ItemServiceImpl implements ItemService { @PersistenceContext EntityManager em; @Transactional public void addItem(I

我需要做的是运行一段原生sql查询来选择所有内容并获取 从特定表中输出数据

我的应用程序是基于SpringHibernate的web应用程序。这是我的密码:

DAOserviceImpl:

@Service
public class ItemServiceImpl implements ItemService {

    @PersistenceContext
    EntityManager em;

    @Transactional
    public void addItem(Item item) {
        em.persist(item);
    }

    @Transactional
    public List<Item> iosADVsearchResults(String itemCode) {
        //run native query with jpa
        List<Item> itemList = (List<Item>)em.createQuery("SELECT * FROM item itemcode='" + itemCode + "'")
            .getResultList(); 
        return itemList;
    }
}
@服务
公共类ItemServiceImpl实现ItemService{
@持久上下文
实体管理器;
@交易的
公共无效附加项(项目){
em.persist(项目);
}
@交易的
公共列表iosADVsearchResults(字符串项代码){
//使用jpa运行本机查询
List itemList=(List)em.createQuery(“从item itemcode='“+itemcode+'”)中选择*
.getResultList();
返回项目列表;
}
}
但我最终得到的是这个错误:

HTTP状态500-请求处理失败;嵌套异常为java.lang.IllegalArgumentException:org.hibernate.hql.ast.QuerySyntaxException:意外标记:=第1行第35列附近[从itemcode='ll3369'中选择itemcode]

我遵循本教程:

请提供帮助,任何代码示例都会很有帮助。

em.createQuery()
要求使用JPQL而不是SQL编写查询(有关某些信息,请参阅)。对于SQL查询,请使用
em.createNativeQuery()

List itemList=(List)em.createNativeQuery(“从itemcode='“+itemcode+'”,item.class的项中选择*).getResultList();

如果使用JPA,则获取所有记录的查询应如下所示:

List<Item> itemList = (List<Item>) em.createQuery("SELECT i FROM item where  itemcode=?1)
                                    .setParameter(1, itemcode)
                                    .getResultList();
List itemList=(List)em.createQuery(“从itemcode=?1的项中选择i)
.setParameter(1,项目代码)
.getResultList();
这将返回与参数itemcode匹配的所有记录

List<Item> itemList = (List<Item>) em.createQuery("SELECT i FROM item where  itemcode=?1)
                                    .setParameter(1, itemcode)
                                    .getResultList();