【问题标题】:Getting error on a simple query在简单查询中出错
【发布时间】:2014-03-01 21:14:19
【问题描述】:

我正在尝试使用休眠提供程序学习 JPA。下面是我试图触发的查询:

   Query query=eManager.createQuery("from ShopBaseData");
   List list=query.getResultList();

我在尝试执行代码时遇到以下错误:

Caused by: java.sql.SQLException: Fail to convert to internal representation
        at oracle.jdbc.driver.CharCommonAccessor.getBigDecimal(CharCommonAccessor.java:414)[:11.2.0.3.0]
at oracle.jdbc.driver.OracleResultSetImpl.getBigDecimal(OracleResultSetImpl.java:548)[:11.2.0.3.0]
at oracle.jdbc.driver.OracleResultSet.getBigDecimal(OracleResultSet.java:372)[:11.2.0.3.0]
at org.hibernate.type.descriptor.sql.DecimalTypeDescriptor$2.doExtract(DecimalTypeDescriptor.java:67)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:261)

有人可以帮我了解可能导致错误的原因吗?

【问题讨论】:

    标签: java spring hibernate jpa hibernate-mapping


    【解决方案1】:

    也许查询不对? 试试这样的:

    Query query=eManager.createQuery("SELECT * from ShopBaseData");
    

    【讨论】:

    • 它不起作用,错误提示查询中存在无法识别的字符“*”...
    • 尝试使用字段名而不是*
    • JPQL 没有“SELECT *”,这不是 SQL。它应该是“SELECT s FROM ShopBaseData s”,因为任何 JPA 参考都会告诉
    【解决方案2】:

    可能是实体中提到的数据类型与 db.xml 中指定的数据类型不匹配。你可以发布你的实体类吗?这是如何在数据库级别映射的?

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 2019-09-21
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多