当前位置: 首页 > 知识库问答 >
问题:

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

沙海
2023-03-14

我升级了jboss 7到10,但有一个奇怪的错误,我不明白为什么

例外情况:

原因:java.sql.SQLException:oracle.jdbc.driver.OraclePreparedStatementWrapper.setLongInternal(OraclePreparedStatement.java:4901)处的oracle.jdbc.driver.OraclePreparedStatement.setLong(OraclePreparedStatementWrapper.java:4888)处的列索引无效(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.AbstractEntityTyperSister.DeterheId(AbstractEntityTyperSister.java:2636)位于org.hibernate.persister.entity.AbstractEntity.AbstractEntityTyperSister.Deterheate(AbstractEntityTyperSister.java:2604)位于org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2883)

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

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

处理CreateProvisiningBaseServiceImpl时出错:org.springframework.orm.hibernate3.HibernateJdbcExc0019: Hibernate数据访问上的JDBC异常:SQL[插入NE_NOTIFICATION_INPUT(CREATION_DATE,FILE_NAME,INPUT_TYPE,INPUT_ID)值 (?, ?, '通知输入',?)];SQL状态[99999];错误代码[17003];无法插入:[com.ericsson.enk.ne.db.model.通知输入];嵌套异常org.hibernate.exception.GenericJDBCExcture:无法插入:[com.ericsson.enk.ne.db.model.通知输入]

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

序列的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;
}

共有1个答案

何德寿
2023-03-14

我把问题缩小到JPA。看起来这个问题和JPA从2.0升级到2.1有关。正如下面问题中所述,当尝试插入扩展实体时,鉴别器映射应更新为“insertable=false,Updateable=false”注释错误:无效列索引

 类似资料:
  • 问题内容: 我是新手JAVA。我有一个配置文件 然后我的代码 当我运行它时,它返回错误无效的列索引。谁能帮我 ? 谢谢 问题答案: 您正在使用queryForObject(java.lang.String,java.lang.Object [],java.lang.Class) ,它期望对象数组绑定到具有占位符的类型查询。 您的查询可能缺少占位符,例如: 您会收到有关无效列索引的错误,因为当前无法

  • 我在尝试在父表(DART\U ORDER)中插入1条记录,在连接到父表(DART\U ODATE)的子表中插入2条记录时遇到问题。这两个表由一对多对一关系链接,如下所示: 当我尝试保存提供完整OrderDAO对象的记录时,会出现以下异常: 原因:java。sql。SQLException:oracle中的列索引无效。jdbc。驾驶员OraclePreparedStatement。oracle上的s

  • 我正在尝试读取 csv 文件,读取后看起来像这样.csv 我必须设置head=FALSE,否则不会读取文件,因为第一行有奇怪的“我的”字符串。 我想将列索引设置为 Col1、Col2、Col3、Col4。我试过这个,但它不起作用: 我如何解决这个问题来实现我想要的?

  • 问题内容: 我在MySQL数据库中有下表: SQL将如下所示: 如您所见,我同时创建了primaryId和和imgDate索引键。我的想法是,该WHERE子句使用primaryId,而ORDER子句使用来查询结果imgDate。 我的问题是,现在使用多索引会更好吗?还是我应该使用多列索引(目前我不太了解)? 这是我从EXPLAIN得到的: 注意:这不是使用多列索引,这是使用上表说明的结果。 问题答

  • 本文向大家介绍MySQL索引使用说明(单列索引和多列索引),包括了MySQL索引使用说明(单列索引和多列索引)的使用技巧和注意事项,需要的朋友参考一下 1. 单列索引 在性能优化过程中,选择在哪些列上创建索引是最重要的步骤之一。可以考虑使用索引的主要有两种类型的列:在Where子句中出现的列,在join子句中出现的列。请看下面这个查询: 这个查询与前面的查询略有不同,但仍属于简单查询。由于age是

  • 问题内容: 我正在尝试编写一个JTable,它从ResultSet中获取数据,并使用它来创建一个动态大小的表,该表具有来自ResultSet的适当的列名和行数据值,但是我无法获得JDBC为我动态获取列名。 我知道我的选择陈述是好的!我可以使用自己编写的ResultPrinter类轻松打印结果,但由于某种原因我似乎无法获得列名。 代码:http://pastebin.com/SSNdCkNu 输出: