使用eclipselink jpa的未知列错误
Posted
技术标签:
【中文标题】使用eclipselink jpa的未知列错误【英文标题】:Unknown column error using eclipselink jpa 【发布时间】:2017-03-06 16:37:24 【问题描述】:我正在使用 JPA eclipse 链接和 spring 来根据字符串在数据库中查找数据。我已经实现了一个方法
@Transactional
public String authorization(LL l)
Query query = m.createNativeQuery("SELECT a FROM user a WHERE a.name = ?");
query.setParameter(1, l.getName());
UserEntity tmp = (UserEntity) query.getSingleResult();
我的数据库很简单
id | name | password
但是,执行这个我得到错误
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 未知 “字段列表”中的“a”列
我已阅读文档,这应该是执行此类查询的正确方法。为什么会抛出所说的错误?是我犯了错误还是忽略了什么?
感谢所有帮助。
【问题讨论】:
那不是 SQL。是JPQL 【参考方案1】:您似乎希望得到一个实体作为结果,所以不是原生查询:
m.createNativeQuery
使用
m.createQuery
更新
如果您需要使用原生查询,您应该添加预期的结果类:
Query query = m.createNativeQuery("SELECT a.* FROM user a WHERE a.name = ?", UserEntity.class);
【讨论】:
使用 createQuery 抛出“用户”未映射错误,因为我没有使用休眠 那么您必须将结果类添加为第二个参数。您可能必须在选择条款中使用别名才能获得正确的名称以上是关于使用eclipselink jpa的未知列错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 eclipselink 在 JPA 对象上进行 jaxb 编组期间的日期对话错误
使用 EclipseLink JPA 将 XML 类型存储到 PostgreSQL
JPA 2.0 如何处理死锁(Eclipselink JPA2.0 MySQL)