JPA entitymanager运行本机sql查询以从表中获取所有内容
我需要做的是运行一段原生sql查询来选择所有内容并获取 从特定表中输出数据 我的应用程序是基于SpringHibernate的web应用程序。这是我的密码: DAOserviceImpl: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
@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();