java.sql.SQLException:wildfly中的列索引无效

java.sql.SQLException:wildfly中的列索引无效,java,oracle,hibernate,wildfly,Java,Oracle,Hibernate,Wildfly,我将JBoss7升级为wildfly 10,但有一个奇怪的错误,我不明白为什么 例外情况: 原因:java.sql.SQLException:列索引无效 位于oracle.jdbc.driver.OraclePreparedStatement.setLonginInternal(OraclePreparedStatement.java:4901) 位于oracle.jdbc.driver.OraclePreparedStatement.setLong(OraclePreparedStatemen

我将JBoss7升级为wildfly 10,但有一个奇怪的错误,我不明白为什么

例外情况:

原因:java.sql.SQLException:列索引无效 位于oracle.jdbc.driver.OraclePreparedStatement.setLonginInternal(OraclePreparedStatement.java:4901) 位于oracle.jdbc.driver.OraclePreparedStatement.setLong(OraclePreparedStatement.java:4888) 位于oracle.jdbc.driver.OraclePreparedStatementWrapper.setLong(OraclePreparedStatementWrapper.java:206) 在com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setLong(NewProxyPreparedStatement.java:703) 位于org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$1.doBind(BigIntTypeDescriptor.java:46) 位于org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:73) 位于org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:257) 位于org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:252) 位于org.hibernate.persister.entity.AbstractEntityPersister.eID(AbstractEntityPersister.java:2636) 位于org.hibernate.persister.entity.AbstractEntityPersister.deterhymate(AbstractEntityPersister.java:2604) 位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2883)

看起来hibernate正在尝试转换数据类型,因为wildfly正在使用更新版本的hibernate

生成的sql在我直接在oracle上运行时运行良好:

处理CreateProvisioningBaseServiceImpl:org.springframework.orm.hibernate3.HibernateJdbcException:Hibernate数据访问上的JDBC异常:SQL的SQLException[插入到NE通知输入(创建日期、文件名、输入类型、输入ID)值(?,'NotificationInput',?)];SQL状态[99999];错误代码[17003];无法插入:[com.ericsson.enk.ne.db.model.NotificationInput];嵌套异常为org.hibernate.exception.genericjdbception:无法插入:[com.ericsson.enk.ne.db.model.NotificationInput]

还有一些奇怪的事情。当我删除表时,错误不会改变。但当我删除序列时,错误会改变,并表示找不到序列

序列的Java代码如下:


我把问题缩小到JPA。看起来这个问题和JPA从2.0升级到2.1有关。正如下面问题中所述,鉴别器映射应该用“insertable=false,updateable=false”注释更新

删除了sql server标记显示您的Java代码和sql语句为什么您认为引用“无效列索引”的错误消息是一个数据类型问题?@AlexPoole,因为它在这一行中断。oracle.jdbc.driver.OraclePreparedStatement.setLongInternal(OraclePreparedStatement.Java:4901)@a_horse_,没有名称,由于限制,我无法显示完整的java代码,但即使删除表,错误仍然存在。我怀疑序列定义有问题
@Id
@Column(name = "INPUT_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "inputSequence")
@SequenceGenerator(name = "inputSequence", sequenceName = "SEQ_INPUT_ID", allocationSize = 1)
public long getInputId() {
    return inputId;
}