Hibernate本机SQL

Hibernate本机SQL,hibernate,native-sql,Hibernate,Native Sql,在执行以下本机sql hibernate应用程序时,我得到了java.sql.SQLException:无效的列名。 我正在使用Oracle11g。我还有一个包含以下列的Employee表 代码 这是映射文件 <!-- employee.hbm.xml --> <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.

在执行以下本机sql hibernate应用程序时,我得到了java.sql.SQLException:无效的列名。 我正在使用Oracle11g。我还有一个包含以下列的Employee表

代码 这是映射文件

<!-- employee.hbm.xml -->




<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="Employee" table="Employee">
        <id name="empNumber" column="EMPLOYEE_NUMBER "></id>
        <property name="empName"`enter code here` column="EMPLOYEE_NAME"></property>
        <property name="empSal" column="EMPLOYEE_SALARY"></property>
        <property name="deptNumber" column="DEPT_NUMBER"></property>
    </class>
</hibernate-mapping>
提出的例外情况
出现问题的原因是列名的最后一个字符有空格:

<id name="empNumber" column="EMPLOYEE_NUMBER "></id>

最有可能的列名是
EMPLOYEE\u NUMBER
,没有额外的空格

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select * from Employee
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:2214)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
    at org.hibernate.loader.Loader.list(Loader.java:2090)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
    at NativeSQLClient.main(NativeSQLClient.java:14)
Caused by: java.sql.SQLException: Invalid column name
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:110)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:171)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:227)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:439)
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3352)
    at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1883)
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:424)
    at org.hibernate.type.StringType.get(StringType.java:18)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
    at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:553)
    at org.hibernate.loader.Loader.doQuery(Loader.java:689)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.doList(Loader.java:2211)
    ... 7 more
<id name="empNumber" column="EMPLOYEE_NUMBER "></id>