Currently my application is having Hibernate 4.x. Since Spring 5.x requires Hibernate 5.2 or later, I am trying to upgrade it to 5.2.6.Final
ivy.xml
<dependency org="org.springframework" name="spring-aop" rev="5.3.29" />
<dependency org="org.springframework" name="spring-jdbc" rev="5.3.29" />
<dependency org="org.springframework" name="spring-jms" rev="5.3.29" />
<dependency org="org.springframework" name="spring-tx" rev="5.3.29" />
<dependency org="org.springframework" name="spring-web" rev="5.3.29" />
<dependency org="org.springframework" name="spring-beans" rev="5.3.29" />
<dependency org="org.springframework" name="spring-context-support" rev="5.3.29" />
<dependency org="org.springframework" name="spring-orm" rev="5.3.29" />
<dependency org="org.springframework" name="spring-context" rev="5.3.29" />
<dependency org="com.oracle" name="ojdbc8" rev="12.2.0.1" />
<dependency org="com.oracle" name="ucp" rev="12.2.0.1" />
<dependency org="javax.transaction" name="jta" rev="1.1"/>
<dependency org="javax.persistence" name="javax.persistence-api" rev="2.2" />
<dependency org="org.hibernate.javax.persistence" name="hibernate-jpa-2.1-api" />
<dependency org="org.hibernate" name="hibernate-core" rev="5.2.6.Final" />
<dependency org="org.hibernate" name="hibernate-entitymanager" rev="5.2.6.Final" />
Order.java (Table name=ORDER, primaryKey=Order_ID)
@Entity
@Table(name = "ORDER")
@DiscriminatorColumn(name = "ORDER_TYPE", discriminatorType = DiscriminatorType.STRING, length = 1)
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Order extends ZoneOrder {
private Long id;
private String itemId;
private Date orderTime;
private Long weightage;
@Override
@Id
@SequenceGenerator(name = "ORDER_ID_GENERATOR", sequenceName = "ORDER_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ORDER_ID_GENERATOR")
@Column(name = "ORDER_ID", precision = 22, scale = 0, unique = true, nullable = false)
public Long getId() {
return this.id;
}
@Column(name = "ORDER_ITEM_ID", length = 14, nullable = false)
public String getItemId() {
return this.itemId;
}
@Column(name = "ORDER_TIME", nullable = false)
@Temporal(TemporalType.TIMESTAMP)
public Date getOrderTime() {
return this.orderTime == null ? null : new Date(this.orderTime.getTime());
}
@Column(name = "WEIGHTAGE", precision = 22, scale = 0, nullable = false)
public Long getWeightage() {
return this.weightage;
}
...
}
SecondaryOrder.java (Table name= SECONDARY_ORDER, primaryKey=ORDER_ID) Both the tables are connected by Order_ID column.
@Entity
@Table(name = "SECONDARY_ORDER")
@DiscriminatorValue(value = "S")
@PrimaryKeyJoinColumn
public class SecondaryOrder extends Order {
private Long seriesTypeId;
private String orderKey;
@Column(name = "SERIES_TYPE_ID", precision = 22, scale = 0)
public Long getSeriesTypeId() {
return this.seriesTypeId;
}
@Column(name = "ORDER_KEY", length = 14)
public String getOrderKey() {
return this.orderKey;
}
...
}
Getting SQL Error: 17003, SQLState: 99999 Invalid column index when tried to insert and then load a record. Please help me to resolve this.
2024-02-20T13:33:08,675 [main] DEBUG org.hibernate.engine.jdbc.spi.SqlExceptionHelper [] [124] - could not insert: [com.bk2c.zone.SecondaryOrder] [insert into ORDER (ORDER_ITEM_ID, WEIGHTAGE, ORDER_TIME, ORDER_ID) values (?, ?, ?, ?)]
java.sql.SQLException: Invalid column index
at oracle.jdbc.driver.OraclePreparedStatement.setLongInternal(OraclePreparedStatement.java:4857) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
at oracle.jdbc.driver.OraclePreparedStatement.setLong(OraclePreparedStatement.java:4848) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setLong(OraclePreparedStatementWrapper.java:201) ~[ojdbc8-12.2.0.1.jar:12.2.0.1.0]
at org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$1.doBind(BigIntTypeDescriptor.java:46) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:74) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:277) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:272) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
....
2024-02-20T13:33:08,682 [main] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper [] [129] - SQL Error: 17003, SQLState: 99999
2024-02-20T13:33:08,682 [main] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper [] [131] - Invalid column index