-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Cloudscape embedded version and Hibernate 2.0.3
PostPosted: Tue Apr 27, 2004 4:29 pm 
Newbie

Joined: Wed Oct 22, 2003 12:59 pm
Posts: 14
Hi all

I have been running into a problem with Cloudscape embedded version with WASD 5.1 and I am hoping somebody could enlighten me on this issue.
First of all, I am using 2.0.3 as Hibernate version due to project restrictions (legacy code has been already developed using this version and nobody has had the time to test it against most update Hibernate's version). I suspect there is backwards compatibility but well....
so, this is the setup am having:

-Hibernate 2.0.3
-Cloudscape 5.0 embedded version with WSAD 5.1
-Using EJB stateless session

Following are the mapping files:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping>
   <!--
      Created by the Middlegen Hibernate plugin
      
      http://boss.bekk.no/boss/middlegen/
      http://hibernate.sourceforge.net/
   -->

   <class name="com.accovia.bookingManager.businessobjects.MasterBookingFile" table="MASTER_BOOKING_FILE" dynamic-update="true">

      <id name="id" type="java.lang.String" column="ID">
         <!-- <generator class="assigned" /> -->
           <generator class="com.accovia.infra.utilities.hibernate.SessionBeanHiLoGenerator">
                   <param name="table">HI_VALUES</param>
                   <param name="column">next_hi</param>
                   <param name="max_lo">100</param>
           </generator>
         
      </id>

      <version name="version" type="int" column="VERSION" />
      <property name="fileNumber" type="java.lang.String" column="FILE_NUMBER" length="128" />
      <property name="note" type="java.lang.String" column="NOTE" length="1024" />
      <property name="createdBy" type="java.lang.String" column="CREATED_BY" length="64" />
      <property name="creationDate" type="java.sql.Timestamp" column="CREATION_DATE" length="-1" />

      <!-- associations -->
      <!-- bi-directional one-to-many association to BookingFileReference -->
      <set name="bookingFileReferences" lazy="true" inverse="true" cascade="all-delete-orphan">
         <key>
            <column name="MASTER_FILE_ID" />
         </key>
         <one-to-many class="com.accovia.bookingManager.businessobjects.BookingFileReference" />
      </set>

   </class>
</hibernate-mapping>



Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping>
   <!--
      Created by the Middlegen Hibernate plugin
      
      http://boss.bekk.no/boss/middlegen/
      http://hibernate.sourceforge.net/
   -->

   <class name="com.accovia.bookingManager.businessobjects.BookingFileReference" table="BOOKING_FILE_REFERENCE" dynamic-update="true">

      <id name="id" type="java.lang.String" column="ID" unsaved-value="any">
         <generator class="com.accovia.infra.utilities.hibernate.SessionBeanHiLoGenerator">
                   <param name="table">HI_VALUES</param>
                   <param name="column">next_hi</param>
                   <param name="max_lo">100</param>
           </generator>
         <!-- <generator class="assigned" /> -->
      </id>

      <version name="version" type="int" column="VERSION"/>
      <property name="domainName" type="java.lang.String" column="DOMAIN_NAME" length="255" />
      <property name="domainFileNumber" type="java.lang.String" column="DOMAIN_FILE_NUMBER" length="128" />
      <property name="note" type="java.lang.String" column="NOTE" length="1024" />
      <property name="createdBy" type="java.lang.String" column="CREATED_BY" length="64" />
      <property name="creationDate" type="java.sql.Timestamp" column="CREATION_DATE" length="-1" />

      <!-- associations -->
      <!-- bi-directional many-to-one association to MasterBookingFile -->
      <many-to-one name="masterBookingFile" class="com.accovia.bookingManager.businessobjects.MasterBookingFile" not-null="true">
         <column name="MASTER_FILE_ID" />
      </many-to-one>

   </class>
</hibernate-mapping>




These are the java objects:

Code:


package com.accovia.bookingManager.businessobjects;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

/** @author Hibernate CodeGenerator */
public class MasterBookingFile implements Serializable {

    /** identifier field */
    private String id;

    /** nullable persistent field */
    private String fileNumber;

    /** nullable persistent field */
    private String note;

    /** nullable persistent field */
    private String createdBy;

    /** nullable persistent field */
    private Date creationDate;

    /** nullable persistent field */
    private int version;

    /** persistent field */
    private Set bookingFileReferences;

    /** full constructor */
    public MasterBookingFile(String id, String fileNumber, String note, String createdBy, Date creationDate, int version, Set bookingFileReferences) {
        this.id = id;
        this.fileNumber = fileNumber;
        this.note = note;
        this.createdBy = createdBy;
        this.creationDate = creationDate;
        this.version = version;
        this.bookingFileReferences = bookingFileReferences;
    }

    /** default constructor */
    public MasterBookingFile() {
    }

    /** minimal constructor */
    public MasterBookingFile(String id, Set bookingFileReferences) {
        this.id = id;
        this.bookingFileReferences = bookingFileReferences;
    }

    public String getId() {
        return this.id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getFileNumber() {
        return this.fileNumber;
    }

    public void setFileNumber(String fileNumber) {
        this.fileNumber = fileNumber;
    }

    public String getNote() {
        return this.note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getCreatedBy() {
        return this.createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreationDate() {
        return this.creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public int getVersion() {
        return this.version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public Set getBookingFileReferences() {
        return this.bookingFileReferences;
    }

    public void setBookingFileReferences(Set bookingFileReferences) {
        this.bookingFileReferences = bookingFileReferences;
    }

    public String toString() {
        return new ToStringBuilder(this)
            .append("id", getId())
            .toString();
    }

    public boolean equals(Object other) {
        if ( !(other instanceof MasterBookingFile) ) return false;
        MasterBookingFile castOther = (MasterBookingFile) other;
        return new EqualsBuilder()
            .append(this.getId(), castOther.getId())
            .isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder()
            .append(getId())
            .toHashCode();
    }
   
   
    /**
     * Removes a BookingFileReference  from
     * a MasterBookingFile
     *
     * @param bfr
     */
   public void removeBookingFileReference(BookingFileReference bfr){
      bfr.setMasterBookingFile(null);
      this.getBookingFileReferences().remove(bfr);
   }
   
   /**
    * Adds a BookingFileReference  from
     * a MasterBookingFile
    *
    * @param bfr
    */
   public void addBookingFileReference(BookingFileReference bfr){
       bfr.setMasterBookingFile(this);
       this.getBookingFileReferences().add(bfr);
   }
}



Code:
package com.accovia.bookingManager.businessobjects;

import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;

/** @author Hibernate CodeGenerator */
public class BookingFileReference implements Serializable {

    /** identifier field */
    private String id;

    /** persistent field */
    private int version;

    /** nullable persistent field */
    private String domainName;

    /** nullable persistent field */
    private String domainFileNumber;

    /** nullable persistent field */
    private String note;

    /** nullable persistent field */
    private String createdBy;

    /** nullable persistent field */
    private Date creationDate;

    /** persistent field */
    private com.accovia.bookingManager.businessobjects.MasterBookingFile masterBookingFile;

    /** full constructor */
    public BookingFileReference(String id, int version, String domainName, String domainFileNumber, String note, String createdBy, Date creationDate, com.accovia.bookingManager.businessobjects.MasterBookingFile masterBookingFile) {
        this.id = id;
        this.version = version;
        this.domainName = domainName;
        this.domainFileNumber = domainFileNumber;
        this.note = note;
        this.createdBy = createdBy;
        this.creationDate = creationDate;
        this.masterBookingFile = masterBookingFile;
    }

    /** default constructor */
    public BookingFileReference() {
    }

    /** minimal constructor */
    public BookingFileReference(String id, int version, com.accovia.bookingManager.businessobjects.MasterBookingFile masterBookingFile) {
        this.id = id;
        this.version = version;
        this.masterBookingFile = masterBookingFile;
    }

    public String getId() {
        return this.id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public int getVersion() {
        return this.version;
    }

    public void setVersion(int version) {
        this.version = version;
    }

    public String getDomainName() {
        return this.domainName;
    }

    public void setDomainName(String domainName) {
        this.domainName = domainName;
    }

    public String getDomainFileNumber() {
        return this.domainFileNumber;
    }

    public void setDomainFileNumber(String domainFileNumber) {
        this.domainFileNumber = domainFileNumber;
    }

    public String getNote() {
        return this.note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getCreatedBy() {
        return this.createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreationDate() {
        return this.creationDate;
    }

    public void setCreationDate(Date creationDate) {
        this.creationDate = creationDate;
    }

    public com.accovia.bookingManager.businessobjects.MasterBookingFile getMasterBookingFile() {
        return this.masterBookingFile;
    }

    public void setMasterBookingFile(com.accovia.bookingManager.businessobjects.MasterBookingFile masterBookingFile) {
        this.masterBookingFile = masterBookingFile;
    }

    public String toString() {
        return new ToStringBuilder(this)
            .append("id", getId())
            .toString();
    }

    public boolean equals(Object other) {
        if ( !(other instanceof BookingFileReference) ) return false;
        BookingFileReference castOther = (BookingFileReference) other;
        return new EqualsBuilder()
            .append(this.getId(), castOther.getId())
            .isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder()
            .append(getId())
            .toHashCode();
    }

}




This is the code :

Code:
   MasterBookingFile bookingFileToUpdate = null;
      bookingFileToUpdate = (MasterBookingFile) retrieveObject(session, MasterBookingFile.class, bf.getId());
      bookingFileToUpdate.setCreationDate(new Date(System.currentTimeMillis()));
      bookingFileToUpdate.setFileNumber(" F00003");
      bookingFileToUpdate.setNote("this is just a test");
      for (int i = 0; i < 10; i++)
      {
         BookingFileReference bookingFileReference = new BookingFileReference();
         bookingFileReference.setDomainName("domain name");
         bookingFileReference.setDomainFileNumber("domain number");
         //bookingFileReference.setId(pkf+new Integer(i).toString());
         bookingFileReference.setMasterBookingFile(bookingFileToUpdate);
         bookingFileToUpdate.addBookingFileReference(bookingFileReference);
      
                ses.flush();
                close(); //close session




      return bookingFileToUpdate;
   }




and the exception happens when code executes this line in the above code
Code:
bookingFileToUpdate.addBookingFileReference(bookingFileReference);


Exception:
Quote:

[27/04/04 15:02:51:516 EDT] 122c07e7 BatcherImpl W net.sf.hibernate.impl.BatcherImpl TRAS0014I: The following exception was logged SQL Exception: Feature not implemented: getQueryTimeout.
at db2j.s.h.tq_(Unknown Source)
at db2j.s.h.newCloudscapeSQLException(Unknown Source)
at db2j.s.h.notImplemented(Unknown Source)
at db2j.s.g.getQueryTimeout(Unknown Source)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.getQueryTimeout(WSJdbcStatement.java:641)
at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:122)
at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:87)
at net.sf.hibernate.loader.Loader.closeQueryStatement(Loader.java:566)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:190)
at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:602)
at net.sf.hibernate.loader.OneToManyLoader.initialize(OneToManyLoader.java:102)
at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2897)
at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:151)
at net.sf.hibernate.collection.PersistentCollection.write(PersistentCollection.java:72)
at net.sf.hibernate.collection.Set.add(Set.java:162)
at com.accovia.bookingManager.businessobjects.MasterBookingFile.addBookingFileReference(MasterBookingFile.java:151)
at com.accovia.bookingManager.dao.impls.BookingFileDaoImpl.modifyBookingFile(BookingFileDaoImpl.java:152)
at com.accovia.bookingManager.dao.impls.BookingFileDaoImpl.updateBookingFile(BookingFileDaoImpl.java:318)
at com.accovia.bookingManager.ejb.BaseBookingFileBrokerBean.updateMasterBookingFile(BaseBookingFileBrokerBean.java:288)
at com.accovia.bookingManager.ejb.EJSLocalStatelessBookingFileBroker_dd76882b.updateMasterBookingFile(EJSLocalStatelessBookingFileBroker_dd76882b.java:183)
at com.accovia.bookingManager.ejb.BookingQueryManagerBean.processQuery(BookingQueryManagerBean.java:393)
at com.accovia.bookingManager.ejb.BookingQueryManagerBean.processQuery(BookingQueryManagerBean.java:354)
at com.accovia.infra.query.ejb.EJSRemoteStatelessBookingQueryManager_fd2f0bb0.processQuery(EJSRemoteStatelessBookingQueryManager_fd2f0bb0.java:22)
at com.accovia.infra.query.ejb._EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.processQuery(_EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.java:157)
at com.accovia.infra.query.ejb._EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie._invoke(_EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.java:98)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:615)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:468)
at com.ibm.rmi.iiop.ORB.process(ORB.java:396)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1608)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2164)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
.
SQL Exception: Feature not implemented: getQueryTimeout.
at db2j.s.h.tq_(Unknown Source)
at db2j.s.h.newCloudscapeSQLException(Unknown Source)
at db2j.s.h.notImplemented(Unknown Source)
at db2j.s.g.getQueryTimeout(Unknown Source)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.getQueryTimeout(WSJdbcStatement.java:641)
at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:122)
at net.sf.hibernate.impl.BatcherImpl.closeQueryStatement(BatcherImpl.java:87)
at net.sf.hibernate.loader.Loader.closeQueryStatement(Loader.java:566)
at net.sf.hibernate.loader.Loader.doFind(Loader.java:190)
at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:602)
at net.sf.hibernate.loader.OneToManyLoader.initialize(OneToManyLoader.java:102)
at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2897)
at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:151)
at net.sf.hibernate.collection.PersistentCollection.write(PersistentCollection.java:72)
at net.sf.hibernate.collection.Set.add(Set.java:162)
at com.accovia.bookingManager.businessobjects.MasterBookingFile.addBookingFileReference(MasterBookingFile.java:151)
at com.accovia.bookingManager.dao.impls.BookingFileDaoImpl.modifyBookingFile(BookingFileDaoImpl.java:152)
at com.accovia.bookingManager.dao.impls.BookingFileDaoImpl.updateBookingFile(BookingFileDaoImpl.java:318)
at com.accovia.bookingManager.ejb.BaseBookingFileBrokerBean.updateMasterBookingFile(BaseBookingFileBrokerBean.java:288)
at com.accovia.bookingManager.ejb.EJSLocalStatelessBookingFileBroker_dd76882b.updateMasterBookingFile(EJSLocalStatelessBookingFileBroker_dd76882b.java:183)
at com.accovia.bookingManager.ejb.BookingQueryManagerBean.processQuery(BookingQueryManagerBean.java:393)
at com.accovia.bookingManager.ejb.BookingQueryManagerBean.processQuery(BookingQueryManagerBean.java:354)
at com.accovia.infra.query.ejb.EJSRemoteStatelessBookingQueryManager_fd2f0bb0.processQuery(EJSRemoteStatelessBookingQueryManager_fd2f0bb0.java:22)
at com.accovia.infra.query.ejb._EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.processQuery(_EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.java:157)
at com.accovia.infra.query.ejb._EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie._invoke(_EJSRemoteStatelessBookingQueryManager_fd2f0bb0_Tie.java:98)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:615)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:468)
at com.ibm.rmi.iiop.ORB.process(ORB.java:396)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1608)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2164)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)




A similar error happens when I run a SELECT-like statement.I know that it is not that important, but now when I want to update a parent with a collection of children, it only adds one child in the collection....This did not happen when the application assigned the primary key.

thanks to all you who has taken time in reading this long posting
cheers
Patria[/quote][/code]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.