Java Hibernate表示标识符无效,即使db中有列可用

Java Hibernate表示标识符无效,即使db中有列可用,java,oracle,hibernate,hibernate-4.x,Java,Oracle,Hibernate,Hibernate 4.x,我正在使用Hibernate4.0作为我的一个项目的orm。。。 当我尝试执行会话.get(Table.class,1)时,我收到以下错误 Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "TABLETYPE0_"."TTPNAME": invalid identifier at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440) at oracle.jdbc.

我正在使用Hibernate4.0作为我的一个项目的orm。。。 当我尝试执行
会话.get(Table.class,1)
时,我收到以下错误

Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "TABLETYPE0_"."TTPNAME": invalid identifier
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:863)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)
... 24 more
休眠:

select
    tabletype0_.ttp_id as ttp_id1_8_,
    tabletype0_.ttp_delete_fl as ttp_delete_fl2_8_,
    tabletype0_.ptn_id as ptn_id3_8_,
    tabletype0_.ttpCreatedDttm as ttpCreatedDttm4_8_,
    tabletype0_.ttpName as ttpName5_8_,
    tabletype0_.ttpVersion as ttpVersion6_8_ 
from
    table_type tabletype0_ 
where
    tabletype0_.ttpName='system'
我的hibernate具有如下注释映射

@javax.persistence.Basic
@javax.persistence.Column( 
    name = "ttp_name", 
    nullable = true, 
    insertable = true, 
    updatable = true )
@org.hibernate.annotations.Type( 
    type = "org.custom.hibernate.types.StringType" )
@javax.validation.constraints.NotNull
@org.hibernate.validator.constraints.NotEmpty
@org.hibernate.validator.constraints.Length( max = 255 )
private String ttpName;


public String getTtpName() 
{ 
    return this.ttpName; 
}


public void setTtpName( String val ) 
{
    this.ttpName = val; 
}
我不知道我犯了什么错误。。。因为我在db中的列名是ttp_名称,所以hibernate尝试使用标识符ttpName进行查询。。。请找个人来帮我一下


提前感谢…

您可以将表格的ddl(create语句)添加到您的问题中吗?您的
@Column(name=“ttp\u name”,…)
名称有下划线。我们为什么不在精选中看到呢。嗨,汉斯,谢谢你的回复。。。创建表格“表格类型”(“TTP_ID”编号(10,0)默认0非空启用,“TTP_名称”VARCHAR2(255字节)默认“”非空启用,“TTP_创建的_DTTM”时间戳(6)默认为_日期('01-JAN-2000')非空启用,“TTP_删除_FL”字符(1字节)默认“N”非空启用,“TTP_版本”编号(10,0)默认0非空启用,“PTN_ID”数字(10,0)默认值0非空启用)是否向类添加了
@Table
注释?是的,我添加了。。。。这就是它的外观…。@javax.persistence.Entity@javax.persistence.Table(name=“Table_type”)@org.hibernate.annotations.FilterDefs({@org.hibernate.annotations.FilterDef(name=“partitionFilter”,parameters={@org.hibernate.annotations.ParamDef(name=“ptn_id”,type=“java.lang.Integer”)}),@org.hibernate.annotations.FilterDef(name=“deletedFilter”,参数={@org.hibernate.annotations.ParamDef(name=“delete_fl”,type=“java.lang.Boolean”)})公共类TableType扩展AbstractHibernateObject实现可序列化