stevecoh2 wrote:
Can you provide a mapping file or fragment? Hard to understand what you could be doing that would cause this.
Sure, first here's the error:
2006-06-14 16:02:03,250 ERROR [org.hibernate.util.JDBCExceptionReporter] The specified table (boomer_ent01.systables) is not in the database.
2006-06-14 16:02:03,250 ERROR [org.hibernate.util.JDBCExceptionReporter] ISAM error: no record found.
2006-06-14 16:02:03,250 ERROR [org.hibernate.AssertionFailure] an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
org.hibernate.AssertionFailure: null id in com.supplyscape.shared.dataobjects.XMLBatchJob entry (don't flush the Session after an exception occurs)
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:48)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:150)
.
.
.
Here's the map on the table its using:
<?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.supplyscape.shared.dataobjects.XMLBatchJob"
table="xml_batch_job"
proxy="com.supplyscape.shared.dataobjects.XMLBatchJob"
dynamic-update="false" dynamic-insert="false"
select-before-update="false">
<id name="id" column="id" type="java.lang.Long">
<generator class="native" />
</id>
<property name="fileName" type="java.lang.String" update="false"
insert="true" access="property" column="fileName" not-null="true" />
<list name="XMLFragments" lazy="true" inverse="false"
cascade="none">
<key column="xml_batch_job_id" />
<index column="xml_fragment_index" />
<one-to-many
class="com.supplyscape.shared.dataobjects.XMLFragment" />
</list>
<property name="handle" type="java.lang.String" update="false"
insert="true" access="property" column="handle" not-null="true" />
<property name="created" type="java.util.Date" update="false"
insert="true" access="property" column="create_stamp"
not-null="true" />
<property name="lastModified" type="java.util.Date"
update="true" insert="true" access="property" column="modify_stamp"
not-null="true" />
<property name="dataFeedFrom" type="java.lang.String"
update="true" insert="true" access="property">
<column name="data_feed_from" not-null="true" />
</property>
<property name="dataFeedTo" type="java.lang.String"
update="true" insert="true" access="property">
<column name="data_feed_to" />
</property>
<property name="operatorHandle" type="java.lang.String"
update="true" insert="true" access="property">
<column name="operator_handle" />
</property>
</class>
</hibernate-mapping>
What it looks like from here is that it's trying to get the ID of the primary key back after an insert by using this function in the dialect:
public String getSequenceNextValString(String sequenceName) {
return "select " + getSelectSequenceNextValString( sequenceName ) + " from systables where tabid=1";
}
and for some reason its prefixing the systables part with the current login name which causes it to fail...
wierd.