Hi all,
We have this issue we are encountering when executing a query using hibernate named queries in AS400.
Here is the query:
Code:
Query query = session.getNamedQuery("com.rrd.comn.db.OrderItemAdditionalData.forOrderItem");
query.setInteger("orderNumber", td.getOrderNumber());
query.setInteger("orderDate", td.getOrderDate());
query.setInteger("orderItemRecordNumber", td.getOrderItemRecordNumber());
OrderItemAdditionalData jiad = (OrderItemAdditionalData) query.uniqueResult();
Here is the mapping file for OrderItemAdditionalData
Code:
<?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="com.rrd.comn.db.OrderItemAdditionalData" table="tableName">
<composite-id>
<key-property name="orderNumber" column="cola" type="integer" />
<key-property name="orderDate" column="colb" type="integer" />
<key-property name="orderItemRecordNumber" column="colc" type="integer" />
</composite-id>
<property name="usPrice" column="cold" type="big_decimal" />
<property name="customerCode" column="cole" type="string" />
</class>
<query name="com.rrd.comn.db.OrderItemAdditionalData.forOrderItem">
<![CDATA[
FROM com.rrd.comn.db.OrderItemAdditionalData
WHERE orderNumber = :orderNumber
AND orderDate = :orderDate
AND orderItemRecordNumber = :orderItemRecordNumber
]]>
</query>
</hibernate-mapping>
This query is executed hundreds of times (in a multi-threading environment) and it usually executes successfully. But SOMETIMES we get the exception:
org.hibernate.exception.SQLGrammarException: could not execute query
Caused by: com.ibm.db2.jdbc.app.DB2JDBCException: An undefined column name was detected.(please let me know if i should put the whole stack trace)
I'm out of ideas as to why this is happening. I hate intermittent errors the most. I hope someone can help me. Please let me know if i need to post additional info.
Thanks so much.
PS - We are using Java 1.3 by the way.