You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by David Forslund <dw...@lanl.gov> on 2002/12/30 01:33:22 UTC

Re: problems with ojb 0.9.8

I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems that 
I don't understand yet.

I'm getting the warning about not finding an autoincrement attribute for a 
class.  I'm not sure when
I have to have an autoincrement attribute, but the primarykey for the class 
I'm using is a varchar
so that autoincrement doesn't seem appropriate.

Subsequently, I get an null pointer exception error in the 
SequenceManagerHelper that I don't understand:
java.lang.NullPointerException
         at 
org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceName(SequenceManagerHelper.java:48)
         at 
org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(SequenceManagerHiLoImpl.java:49)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(PersistenceBrokerImpl.java:2258)
         at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(DelegatingPersistenceBroker.java:242)
         at 
gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
         at 
gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_.java:54)
         at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)

I'm pretty sure that it is being called correctly from my code (which works 
fine in 0.9.7), but it is failing now.

An unrelated warning in a different application is that OJB says I should 
use addLike() for using LIKE, but it
seems to use the right code anyway.  Is this just a deprecation issue?  I 
don't see why it bothers
to tell me this, if it can figure what to do anyway.

Thanks,

Dave


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
there is an example in Tutorial3 that indicates the required use of 
objConcreteClass but this
is for mapping objects to a single table.  I'm using a separate table for 
each concrete
class, so I shouldn't need this field, right?  (I'm quite opposed to having 
to put anything in my
classes related to the OR mapping, since this makes the class quite 
non-portable).

I'm curious as to the changes in this regard from 0.9.7 to 0.9.8.

Dave
At 11:53 AM 12/30/2002 -0700, David Forslund wrote:
>I see what the problem is, but am not sure what the solution is.
>
>I have a an abstract class that is implemented with a number of classes.
>I'm trying to create a unique key for an instance class, but when I
>check there are no field descriptors for the base class.
>
>This all worked fine in 0.9.7, but perhaps there has been some change
>in the semantics?  We put the necessary table elements in each instance
>of the class but not in the table for the base class (which actually 
>doesn't exist).
>
>Thanks,
>
>Dave
>
>At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
>>When I put a check inside of the getFieldDescriptor, I find that it is 
>>being called by HighLowSequence
>>with the argument ojbConcreteClass and is returning a null for the 
>>field.  Is this what is expected?
>>
>>Dave
>>
>>At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
>>>It wasn't null in my code that called the OJB code.  This code has been
>>>working fine in 0.9.7.    If the xml needed to change for some reason,
>>>it might have caused this.  I'm passing in a string of a variable that
>>>is defined in my table.   Whether OJB properly connects a "Field"
>>>to that table is where the problem may be.   It did in the past without
>>>any problem.   I have a hard time telling exactly what changed between
>>>these two versions.
>>>
>>>Thanks,
>>>
>>>Dave
>>>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
>>>>Hi David,
>>>>
>>>>the sequence generator implementation now only generate
>>>>id's for fields declared in the repository.
>>>>I think you got this NullPointerException, because SM get a
>>>>'null' field:
>>>>
>>>><snip SequenceManagerHelper>
>>>>public static String buildSequenceName(
>>>>PersistenceBroker brokerForClass, FieldDescriptor field)
>>>>     {
>>>>48--->!!! ClassDescriptor cldTargetClass = field.getClassDescriptor();
>>>>                 String seqName = field.getSequenceName();
>>>>.....
>>>></snip>
>>>>
>>>>So check your code if the given FiledDescriptor wasn't null.
>>>>
>>>>HTH
>>>>
>>>>regards,
>>>>Armin
>>>>
>>>>----- Original Message -----
>>>>From: "David Forslund" <dw...@lanl.gov>
>>>>To: "OJB Users List" <oj...@jakarta.apache.org>
>>>>Sent: Monday, December 30, 2002 1:33 AM
>>>>Subject: Re: problems with ojb 0.9.8
>>>>
>>>>
>>>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems
>>>>that
>>>> > I don't understand yet.
>>>> >
>>>> > I'm getting the warning about not finding an autoincrement attribute
>>>>for a
>>>> > class.  I'm not sure when
>>>> > I have to have an autoincrement attribute, but the primarykey for the
>>>>class
>>>> > I'm using is a varchar
>>>> > so that autoincrement doesn't seem appropriate.
>>>> >
>>>> > Subsequently, I get an null pointer exception error in the
>>>> > SequenceManagerHelper that I don't understand:
>>>> > java.lang.NullPointerException
>>>> >          at
>>>> >
>>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceN
>>>>ame(SequenceManagerHelper.java:48)
>>>> >          at
>>>> >
>>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(
>>>>SequenceManagerHiLoImpl.java:49)
>>>> >          at
>>>> >
>>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Persist
>>>>enceBrokerImpl.java:2258)
>>>> >          at
>>>> >
>>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(D
>>>>elegatingPersistenceBroker.java:242)
>>>> >          at
>>>> > gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
>>>> >          at
>>>> >
>>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_
>>>>.java:54)
>>>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
>>>> >
>>>> > I'm pretty sure that it is being called correctly from my code (which
>>>>works
>>>> > fine in 0.9.7), but it is failing now.
>>>> >
>>>> > An unrelated warning in a different application is that OJB says I
>>>>should
>>>> > use addLike() for using LIKE, but it
>>>> > seems to use the right code anyway.  Is this just a deprecation issue?
>>>>I
>>>> > don't see why it bothers
>>>> > to tell me this, if it can figure what to do anyway.
>>>> >
>>>> > Thanks,
>>>> >
>>>> > Dave
>>>> >
>>>> >
>>>> > --
>>>> > To unsubscribe, e-mail:
>>>><ma...@jakarta.apache.org>
>>>> > For additional commands, e-mail:
>>>><ma...@jakarta.apache.org>
>>>> >
>>>> >
>>>> >
>>>>
>>>>
>>>>--
>>>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
Indeed.  It worked with with MySQL and I upgraded the hsqldb and it works 
with it, too!

Thanks,

Dave
At 10:56 PM 12/30/2002 +0100, Armin Waibel wrote:
>Damned! A hard nut to crack ;-)
>Now it seems to be a field configuration or a database problem.
>In both cases I'm not a expert.
>
><snip>
>/*
>      * @see Platform#setObject(PreparedStatement, int, Object, int)
>      */
>     public void setObjectForStatement(PreparedStatement ps, int index,
>Object value, int sqlType)
>             throws SQLException
>     {
>         if ((value instanceof String) && (sqlType == Types.LONGVARCHAR))
>         {
>             String s = (String) value;
>             ps.setCharacterStream(index, new StringReader(s),
>s.length());
>         }
>         else
>         {
>             ps.setObject(index, value, sqlType);
>         }
>     }
>
>setCharacterStream was called when LONGVARCHAR was used.
>Did you use the latest version of hsql? I think in current version there
>should be LONGVARCHAR fields supported.
>Maybe take a look in the repository_junit.xml for alternatives field
>type.
>Sorry, I couldn't help more.
>
>regards,
>Armin
>
>----- Original Message -----
>From: "David Forslund" <dw...@lanl.gov>
>To: "OJB Users List" <oj...@jakarta.apache.org>
>Sent: Monday, December 30, 2002 10:25 PM
>Subject: Re: problems with ojb 0.9.8
>
>
> > At 09:25 PM 12/30/2002 +0100, Armin Waibel wrote:
> > >Hi again,
> > >
> > > > > > >
> > > > > > > > I see what the problem is, but am not sure what the
>solution
> > >is.
> > > > > > > >
> > > > > > > > I have a an abstract class that is implemented with a
>number
> > >of
> > > > > > >classes.
> > > > > > > > I'm trying to create a unique key for an instance class,
>but
> > >when
> > > > >I
> > > > > > > > check there are no field descriptors for the base class.
> > > > > > >
> > > > > > >Have you tried
> > > > > > >Class realClass = abstractBaseClass.getClass();
> > > > > > >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> > > > > > >to get the real class descriptor? Then it should possible to
>get
> > >the
> > > > > > >field.
> > > > > >
> > > > > > This doesn't help because I'm just calling the getUniqueId
>within
> > >OJB
> > > > > > and I don't have any control over what it does except through
> > > > > > the repository.
> > > > >
> > > > >
> > > > >I do not understand this. You declare your 'valueId' as a
> > >autoincrement
> > > > >field, but in your stack trace it seems you do a direct call
> > > > >PB.getUniqueId?
> > > >
> > > > Well I did add this because 0.9.8 was complaining about this field
> > >being
> > > > absent.  I have removed it without any change in the behavior.
> > > >
> > > >
> > > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > > > > >>> >
> > > > > >
> > >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > > >
> > > > >Could you post a code snip to ease my understanding?
> > > > >But by the way this seems to be a bug.
> > > >
> > > > I'm not sure what you mean by a code snippet.  When I call the
>class
> > > > constructor,
> > > > I call getUniqueId with the class name and attribute:
> > > >
> > > > This is the specific method I call .
> > > > /**
> > > >       * return next number in a persistent sequence
> > > >       */
> > > >      public long getNextSeq(Class clazz, String fieldName) {
> > > >          cat.debug("getNextSeq: "+clazz.getName() + "
>"+fieldName);
> > > >          // return sequenceManager.getUniqueId(clazz, fieldName);
> > > >          try {
> > >                 // get the CLD for the base class
> > >                 ClassDescriptor cld =
>broker.getClassDescriptor(clazz);
> > >                 if( (cld.isAbstract || cld.isInterface()) &&
> > >cld.isExtent())
> > >                 {
> > >                     // get the first found extent class
> > >                       clazz = cld.getExtentClasses().get(0) // we
>grap
> > >the first
> > >                 }
> > >
> > > >              return broker.getUniqueId(clazz, fieldName);
> > > >          } catch (org.apache.ojb.broker.PersistenceBrokerException
>e)
> > >{
> > > >              cat.error("Can't get ID from broker: " +
>clazz.getName()
> > >+ " "
> > > > + fieldName, e);
> > > >
> > > >              // System.exit(1);
> > > >              return 0;
> > > >          }
> > > >      }
> > > >
> > >Maybe this could be a workaround for your problem.
> > >Keep in mind that getUniqueId(clazz, fieldName) was deprecated
> > >and will be replaced by getUniqueId(FieldDescriptor field).
> > >
> > >What I don't understand is, why you need a getNextSeq method,
> > >when you define autoincrement fields? OJB does all sequence key
> > >generation automatic for you.
> >
> > It didn't use to.  Plus we allow for other OR mapping tools and
> > need some level of control of ids, independent of the tool.
> >
> > OK.  I made this change and that problem went away, but another
> > one came up.  I now get an error from hsqldb that the requested
>function
> > is not supported:
> >
> > [org.apache.ojb.broker.accesslayer.JdbcAccess] ERROR: SQLException
>during
> > the ex
> > ecution of the insert (for a gov.lanl.COAS.String_): This function is
>not
> > supported
> > This function is not supported
> > java.sql.SQLException: This function is not supported
> >          at org.hsqldb.Trace.getError(Trace.java:180)
> >          at org.hsqldb.Trace.getError(Trace.java:144)
> >          at org.hsqldb.Trace.error(Trace.java:192)
> >          at
> > org.hsqldb.jdbcPreparedStatement.getNotSupported(jdbcPreparedStatemen
> > t.java:1602)
> >          at
> >
>org.hsqldb.jdbcPreparedStatement.setCharacterStream(jdbcPreparedStatemen
>t.java:1375)
> >          at
> >
>org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatemen
>t(PlatformDefaultImpl.java:216)
> >          at
> >
>org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementM
>anager.java:487)
> >          at
> >
>org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(JdbcAccess.ja
>va:194)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
>ceBrokerImpl.java:1966)
> >          at
> > org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Persistence
>BrokerImpl.java:1905)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:614)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeReferences(Per
>sistenceBrokerImpl.java:641)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
>ceBrokerImpl.java:1938)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:1905)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:614)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollectionObje
>ct(PersistenceBrokerImpl.java:789)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollections(Pe
>rsistenceBrokerImpl.java:769)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
>ceBrokerImpl.java:1989)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:1905)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:614)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
>okerImpl.java:588)
> >          at
> >
>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(Delegat
>ingPersistenceBroker.java:123)
> >          at
> > gov.lanl.Database.OJBDatabaseMgr.insertElement(OJBDatabaseMgr.java:30
> >
> > Thanks,
> >
> > Dave
> >
> > >HTH
> > >regards,
> > >Armin
> > >
> > > > thanks,
> > > >
> > > > Dave
> > > >
> > > >
> > > > >Armin
> > > > >
> > > > >
> > > > > >
> > > > > > >Or define your base class with all fields in the repository
>file
> > >and
> > > > > > >declare
> > > > > > >all extent-classes in the class-descriptor. Then the default
> > >sequence
> > > > > > >manager implementations should be able to generate a id
>unique
> > > > > > >across all extents.
> > > > > > >Or define only the abstract class with all extent-classes,
>then
> > >you
> > > > > > >should be
> > > > > > >able to get one of the extent classes.
> > > > > >
> > > > > > This is how I have it defined in my repository_user.xml
> > > > > >
> > > > > >    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
> > > > > >      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
> > > > > >      <extent-class
>class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
> > > > > >      <extent-class
>class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.Range_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.String_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
> > > > > >      <extent-class
> > > > >class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
> > > > > >      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
> > > > > >    </class-descriptor>
> > > > > >
> > > > > > and an example for one of the extent classes
> > > > > >
> > > > > >   <class-descriptor
> > > > > >         isolation-level="read-uncommitted"
> > > > > >         class="gov.lanl.COAS.Empty_"
> > > > > >         table="OjbEmpty_"
> > > > > >   >
> > > > > >     <field-descriptor id="1"
> > > > > >         name="valueId"
> > > > > >         jdbc-type="INTEGER"
> > > > > >         column="valueId"
> > > > > >         primarykey="true"
> > > > > >         autoincrement="true"
> > > > > >     />
> > > > > >
> > > > > >   </class-descriptor>
> > > > > >
> > > > > > there is no table for the ObservationValue_ class because it
>is an
> > > > >Abstract
> > > > > > Class.
> > > > > > this is what I've been using for 0.9.7 and it works fine.
>this
> > >fails
> > > > >under
> > > > > > 0.9.8
> > > > > > when trying to get a uniqueid for each of the extent classes.
>I
> > >think
> > > > >this
> > > > > > is what
> > > > > > you are describing in your last suggestion.
> > > > > >
> > > > > > thanks,
> > > > > > Dave
> > > > > >
> > > > > >
> > > > > > >HTH
> > > > > > >regards,
> > > > > > >Armin
> > > > > > >
> > > > > > > >
> > > > > > > > This all worked fine in 0.9.7, but perhaps there has been
>some
> > > > >change
> > > > > > > > in the semantics?  We put the necessary table elements in
>each
> > > > > > >instance
> > > > > > > > of the class but not in the table for the base class
>(which
> > > > >actually
> > > > > > > > doesn't exist).
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > >
> > > > > > > > Dave
> > > > > > > >
> > > > > > > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > > > >When I put a check inside of the getFieldDescriptor, I
>find
> > >that
> > > > >it
> > > > > > >is
> > > > > > > > >being called by HighLowSequence
> > > > > > > > >with the argument ojbConcreteClass and is returning a
>null
> > >for
> > > > >the
> > > > > > > > >field.  Is this what is expected?
> > > > > > > > >
> > > > > > > > >Dave
> > > > > > > > >
> > > > > > > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > > > >>It wasn't null in my code that called the OJB code.
>This
> > >code
> > > > >has
> > > > > > >been
> > > > > > > > >>working fine in 0.9.7.    If the xml needed to change
>for
> > >some
> > > > > > >reason,
> > > > > > > > >>it might have caused this.  I'm passing in a string of a
> > > > >variable
> > > > > > >that
> > > > > > > > >>is defined in my table.   Whether OJB properly connects
>a
> > > > >"Field"
> > > > > > > > >>to that table is where the problem may be.   It did in
>the
> > >past
> > > > > > >without
> > > > > > > > >>any problem.   I have a hard time telling exactly what
> > >changed
> > > > > > >between
> > > > > > > > >>these two versions.
> > > > > > > > >>
> > > > > > > > >>Thanks,
> > > > > > > > >>
> > > > > > > > >>Dave
> > > > > > > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > > > > > > >>>Hi David,
> > > > > > > > >>>
> > > > > > > > >>>the sequence generator implementation now only generate
> > > > > > > > >>>id's for fields declared in the repository.
> > > > > > > > >>>I think you got this NullPointerException, because SM
>get a
> > > > > > > > >>>'null' field:
> > > > > > > > >>>
> > > > > > > > >>><snip SequenceManagerHelper>
> > > > > > > > >>>public static String buildSequenceName(
> > > > > > > > >>>PersistenceBroker brokerForClass, FieldDescriptor
>field)
> > > > > > > > >>>     {
> > > > > > > > >>>48--->!!! ClassDescriptor cldTargetClass =
> > > > > > >field.getClassDescriptor();
> > > > > > > > >>>                 String seqName =
>field.getSequenceName();
> > > > > > > > >>>.....
> > > > > > > > >>></snip>
> > > > > > > > >>>
> > > > > > > > >>>So check your code if the given FiledDescriptor wasn't
> > >null.
> > > > > > > > >>>
> > > > > > > > >>>HTH
> > > > > > > > >>>
> > > > > > > > >>>regards,
> > > > > > > > >>>Armin
> > > > > > > > >>>
> > > > > > > > >>>----- Original Message -----
> > > > > > > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > > > > > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > > > > > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > > > > > > >>>Subject: Re: problems with ojb 0.9.8
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am
>having
> > >some
> > > > > > >problems
> > > > > > > > >>>that
> > > > > > > > >>> > I don't understand yet.
> > > > > > > > >>> >
> > > > > > > > >>> > I'm getting the warning about not finding an
> > >autoincrement
> > > > > > >attribute
> > > > > > > > >>>for a
> > > > > > > > >>> > class.  I'm not sure when
> > > > > > > > >>> > I have to have an autoincrement attribute, but the
> > > > >primarykey
> > > > > > >for the
> > > > > > > > >>>class
> > > > > > > > >>> > I'm using is a varchar
> > > > > > > > >>> > so that autoincrement doesn't seem appropriate.
> > > > > > > > >>> >
> > > > > > > > >>> > Subsequently, I get an null pointer exception error
>in
> > >the
> > > > > > > > >>> > SequenceManagerHelper that I don't understand:
> > > > > > > > >>> > java.lang.NullPointerException
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> > > > > > >ceN
> > > > > > > > >>>ame(SequenceManagerHelper.java:48)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> > > > > > >Id(
> > > > > > > > >>>SequenceManagerHiLoImpl.java:49)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> > > > > > >ist
> > > > > > > > >>>enceBrokerImpl.java:2258)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > > >d(D
> > > > > > > > >>>elegatingPersistenceBroker.java:242)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > >
> > >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > > > >>> >          at
> > > > > > > > >>> >
> > > > > > > >
> > > > > > >
> > > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > > > > >ue_
> > > > > > > > >>>.java:54)
> > > > > > > > >>> >          at
>gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > > > > > > >>> >
> > > > > > > > >>> > I'm pretty sure that it is being called correctly
>from
> > >my
> > > > >code
> > > > > > >(which
> > > > > > > > >>>works
> > > > > > > > >>> > fine in 0.9.7), but it is failing now.
> > > > > > > > >>> >
> > > > > > > > >>> > An unrelated warning in a different application is
>that
> > >OJB
> > > > >says
> > > > > > >I
> > > > > > > > >>>should
> > > > > > > > >>> > use addLike() for using LIKE, but it
> > > > > > > > >>> > seems to use the right code anyway.  Is this just a
> > > > >deprecation
> > > > > > >issue?
> > > > > > > > >>>I
> > > > > > > > >>> > don't see why it bothers
> > > > > > > > >>> > to tell me this, if it can figure what to do anyway.
> > > > > > > > >>> >
> > > > > > > > >>> > Thanks,
> > > > > > > > >>> >
> > > > > > > > >>> > Dave
> > > > > > > > >>> >
> > > > > > > > >>> >
> > > > > > > > >>> > --
> > > > > > > > >>> > To unsubscribe, e-mail:
> > > > > > > > >>><ma...@jakarta.apache.org>
> > > > > > > > >>> > For additional commands, e-mail:
> > > > > > > > >>><ma...@jakarta.apache.org>
> > > > > > > > >>> >
> > > > > > > > >>> >
> > > > > > > > >>> >
> > > > > > > > >>>
> > > > > > > > >>>
> > > > > > > > >>>--
> > > > > > > > >>>To unsubscribe, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > >>>For additional commands, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >>--
> > > > > > > > >>To unsubscribe, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > >>For additional commands, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >--
> > > > > > > > >To unsubscribe, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > >For additional commands, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > To unsubscribe, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > > For additional commands, e-mail:
> > > > > > ><ma...@jakarta.apache.org>
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >--
> > > > > > >To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > >
> > > > > >
> > > > > > --
> > > > > > To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >--
> > > > >To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > >
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> >
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by Armin Waibel <ar...@code-au-lait.de>.
Damned! A hard nut to crack ;-)
Now it seems to be a field configuration or a database problem.
In both cases I'm not a expert.

<snip>
/*
     * @see Platform#setObject(PreparedStatement, int, Object, int)
     */
    public void setObjectForStatement(PreparedStatement ps, int index,
Object value, int sqlType)
            throws SQLException
    {
        if ((value instanceof String) && (sqlType == Types.LONGVARCHAR))
        {
            String s = (String) value;
            ps.setCharacterStream(index, new StringReader(s),
s.length());
        }
        else
        {
            ps.setObject(index, value, sqlType);
        }
    }

setCharacterStream was called when LONGVARCHAR was used.
Did you use the latest version of hsql? I think in current version there
should be LONGVARCHAR fields supported.
Maybe take a look in the repository_junit.xml for alternatives field
type.
Sorry, I couldn't help more.

regards,
Armin

----- Original Message -----
From: "David Forslund" <dw...@lanl.gov>
To: "OJB Users List" <oj...@jakarta.apache.org>
Sent: Monday, December 30, 2002 10:25 PM
Subject: Re: problems with ojb 0.9.8


> At 09:25 PM 12/30/2002 +0100, Armin Waibel wrote:
> >Hi again,
> >
> > > > > >
> > > > > > > I see what the problem is, but am not sure what the
solution
> >is.
> > > > > > >
> > > > > > > I have a an abstract class that is implemented with a
number
> >of
> > > > > >classes.
> > > > > > > I'm trying to create a unique key for an instance class,
but
> >when
> > > >I
> > > > > > > check there are no field descriptors for the base class.
> > > > > >
> > > > > >Have you tried
> > > > > >Class realClass = abstractBaseClass.getClass();
> > > > > >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> > > > > >to get the real class descriptor? Then it should possible to
get
> >the
> > > > > >field.
> > > > >
> > > > > This doesn't help because I'm just calling the getUniqueId
within
> >OJB
> > > > > and I don't have any control over what it does except through
> > > > > the repository.
> > > >
> > > >
> > > >I do not understand this. You declare your 'valueId' as a
> >autoincrement
> > > >field, but in your stack trace it seems you do a direct call
> > > >PB.getUniqueId?
> > >
> > > Well I did add this because 0.9.8 was complaining about this field
> >being
> > > absent.  I have removed it without any change in the behavior.
> > >
> > >
> > > > > >
> > > >
> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > > > >>> >
> > > > >
> >
>gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > >
> > > >Could you post a code snip to ease my understanding?
> > > >But by the way this seems to be a bug.
> > >
> > > I'm not sure what you mean by a code snippet.  When I call the
class
> > > constructor,
> > > I call getUniqueId with the class name and attribute:
> > >
> > > This is the specific method I call .
> > > /**
> > >       * return next number in a persistent sequence
> > >       */
> > >      public long getNextSeq(Class clazz, String fieldName) {
> > >          cat.debug("getNextSeq: "+clazz.getName() + "
"+fieldName);
> > >          // return sequenceManager.getUniqueId(clazz, fieldName);
> > >          try {
> >                 // get the CLD for the base class
> >                 ClassDescriptor cld =
broker.getClassDescriptor(clazz);
> >                 if( (cld.isAbstract || cld.isInterface()) &&
> >cld.isExtent())
> >                 {
> >                     // get the first found extent class
> >                       clazz = cld.getExtentClasses().get(0) // we
grap
> >the first
> >                 }
> >
> > >              return broker.getUniqueId(clazz, fieldName);
> > >          } catch (org.apache.ojb.broker.PersistenceBrokerException
e)
> >{
> > >              cat.error("Can't get ID from broker: " +
clazz.getName()
> >+ " "
> > > + fieldName, e);
> > >
> > >              // System.exit(1);
> > >              return 0;
> > >          }
> > >      }
> > >
> >Maybe this could be a workaround for your problem.
> >Keep in mind that getUniqueId(clazz, fieldName) was deprecated
> >and will be replaced by getUniqueId(FieldDescriptor field).
> >
> >What I don't understand is, why you need a getNextSeq method,
> >when you define autoincrement fields? OJB does all sequence key
> >generation automatic for you.
>
> It didn't use to.  Plus we allow for other OR mapping tools and
> need some level of control of ids, independent of the tool.
>
> OK.  I made this change and that problem went away, but another
> one came up.  I now get an error from hsqldb that the requested
function
> is not supported:
>
> [org.apache.ojb.broker.accesslayer.JdbcAccess] ERROR: SQLException
during
> the ex
> ecution of the insert (for a gov.lanl.COAS.String_): This function is
not
> supported
> This function is not supported
> java.sql.SQLException: This function is not supported
>          at org.hsqldb.Trace.getError(Trace.java:180)
>          at org.hsqldb.Trace.getError(Trace.java:144)
>          at org.hsqldb.Trace.error(Trace.java:192)
>          at
> org.hsqldb.jdbcPreparedStatement.getNotSupported(jdbcPreparedStatemen
> t.java:1602)
>          at
>
org.hsqldb.jdbcPreparedStatement.setCharacterStream(jdbcPreparedStatemen
t.java:1375)
>          at
>
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatemen
t(PlatformDefaultImpl.java:216)
>          at
>
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementM
anager.java:487)
>          at
>
org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(JdbcAccess.ja
va:194)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
ceBrokerImpl.java:1966)
>          at
> org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Persistence
BrokerImpl.java:1905)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:614)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeReferences(Per
sistenceBrokerImpl.java:641)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
ceBrokerImpl.java:1938)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:1905)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:614)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollectionObje
ct(PersistenceBrokerImpl.java:789)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollections(Pe
rsistenceBrokerImpl.java:769)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(Persisten
ceBrokerImpl.java:1989)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:1905)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:614)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBr
okerImpl.java:588)
>          at
>
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(Delegat
ingPersistenceBroker.java:123)
>          at
> gov.lanl.Database.OJBDatabaseMgr.insertElement(OJBDatabaseMgr.java:30
>
> Thanks,
>
> Dave
>
> >HTH
> >regards,
> >Armin
> >
> > > thanks,
> > >
> > > Dave
> > >
> > >
> > > >Armin
> > > >
> > > >
> > > > >
> > > > > >Or define your base class with all fields in the repository
file
> >and
> > > > > >declare
> > > > > >all extent-classes in the class-descriptor. Then the default
> >sequence
> > > > > >manager implementations should be able to generate a id
unique
> > > > > >across all extents.
> > > > > >Or define only the abstract class with all extent-classes,
then
> >you
> > > > > >should be
> > > > > >able to get one of the extent classes.
> > > > >
> > > > > This is how I have it defined in my repository_user.xml
> > > > >
> > > > >    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
> > > > >      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
> > > > >      <extent-class
class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
> > > > >      <extent-class
class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.Range_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.String_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
> > > > >      <extent-class
> > > >class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
> > > > >      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
> > > > >    </class-descriptor>
> > > > >
> > > > > and an example for one of the extent classes
> > > > >
> > > > >   <class-descriptor
> > > > >         isolation-level="read-uncommitted"
> > > > >         class="gov.lanl.COAS.Empty_"
> > > > >         table="OjbEmpty_"
> > > > >   >
> > > > >     <field-descriptor id="1"
> > > > >         name="valueId"
> > > > >         jdbc-type="INTEGER"
> > > > >         column="valueId"
> > > > >         primarykey="true"
> > > > >         autoincrement="true"
> > > > >     />
> > > > >
> > > > >   </class-descriptor>
> > > > >
> > > > > there is no table for the ObservationValue_ class because it
is an
> > > >Abstract
> > > > > Class.
> > > > > this is what I've been using for 0.9.7 and it works fine.
this
> >fails
> > > >under
> > > > > 0.9.8
> > > > > when trying to get a uniqueid for each of the extent classes.
I
> >think
> > > >this
> > > > > is what
> > > > > you are describing in your last suggestion.
> > > > >
> > > > > thanks,
> > > > > Dave
> > > > >
> > > > >
> > > > > >HTH
> > > > > >regards,
> > > > > >Armin
> > > > > >
> > > > > > >
> > > > > > > This all worked fine in 0.9.7, but perhaps there has been
some
> > > >change
> > > > > > > in the semantics?  We put the necessary table elements in
each
> > > > > >instance
> > > > > > > of the class but not in the table for the base class
(which
> > > >actually
> > > > > > > doesn't exist).
> > > > > > >
> > > > > > > Thanks,
> > > > > > >
> > > > > > > Dave
> > > > > > >
> > > > > > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > > >When I put a check inside of the getFieldDescriptor, I
find
> >that
> > > >it
> > > > > >is
> > > > > > > >being called by HighLowSequence
> > > > > > > >with the argument ojbConcreteClass and is returning a
null
> >for
> > > >the
> > > > > > > >field.  Is this what is expected?
> > > > > > > >
> > > > > > > >Dave
> > > > > > > >
> > > > > > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > > >>It wasn't null in my code that called the OJB code.
This
> >code
> > > >has
> > > > > >been
> > > > > > > >>working fine in 0.9.7.    If the xml needed to change
for
> >some
> > > > > >reason,
> > > > > > > >>it might have caused this.  I'm passing in a string of a
> > > >variable
> > > > > >that
> > > > > > > >>is defined in my table.   Whether OJB properly connects
a
> > > >"Field"
> > > > > > > >>to that table is where the problem may be.   It did in
the
> >past
> > > > > >without
> > > > > > > >>any problem.   I have a hard time telling exactly what
> >changed
> > > > > >between
> > > > > > > >>these two versions.
> > > > > > > >>
> > > > > > > >>Thanks,
> > > > > > > >>
> > > > > > > >>Dave
> > > > > > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > > > > > >>>Hi David,
> > > > > > > >>>
> > > > > > > >>>the sequence generator implementation now only generate
> > > > > > > >>>id's for fields declared in the repository.
> > > > > > > >>>I think you got this NullPointerException, because SM
get a
> > > > > > > >>>'null' field:
> > > > > > > >>>
> > > > > > > >>><snip SequenceManagerHelper>
> > > > > > > >>>public static String buildSequenceName(
> > > > > > > >>>PersistenceBroker brokerForClass, FieldDescriptor
field)
> > > > > > > >>>     {
> > > > > > > >>>48--->!!! ClassDescriptor cldTargetClass =
> > > > > >field.getClassDescriptor();
> > > > > > > >>>                 String seqName =
field.getSequenceName();
> > > > > > > >>>.....
> > > > > > > >>></snip>
> > > > > > > >>>
> > > > > > > >>>So check your code if the given FiledDescriptor wasn't
> >null.
> > > > > > > >>>
> > > > > > > >>>HTH
> > > > > > > >>>
> > > > > > > >>>regards,
> > > > > > > >>>Armin
> > > > > > > >>>
> > > > > > > >>>----- Original Message -----
> > > > > > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > > > > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > > > > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > > > > > >>>Subject: Re: problems with ojb 0.9.8
> > > > > > > >>>
> > > > > > > >>>
> > > > > > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am
having
> >some
> > > > > >problems
> > > > > > > >>>that
> > > > > > > >>> > I don't understand yet.
> > > > > > > >>> >
> > > > > > > >>> > I'm getting the warning about not finding an
> >autoincrement
> > > > > >attribute
> > > > > > > >>>for a
> > > > > > > >>> > class.  I'm not sure when
> > > > > > > >>> > I have to have an autoincrement attribute, but the
> > > >primarykey
> > > > > >for the
> > > > > > > >>>class
> > > > > > > >>> > I'm using is a varchar
> > > > > > > >>> > so that autoincrement doesn't seem appropriate.
> > > > > > > >>> >
> > > > > > > >>> > Subsequently, I get an null pointer exception error
in
> >the
> > > > > > > >>> > SequenceManagerHelper that I don't understand:
> > > > > > > >>> > java.lang.NullPointerException
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> > > > > >ceN
> > > > > > > >>>ame(SequenceManagerHelper.java:48)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> > > > > >Id(
> > > > > > > >>>SequenceManagerHiLoImpl.java:49)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> > > > > >ist
> > > > > > > >>>enceBrokerImpl.java:2258)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > >d(D
> > > > > > > >>>elegatingPersistenceBroker.java:242)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > >
> >
>gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > > >>> >          at
> > > > > > > >>> >
> > > > > > >
> > > > > >
> > > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > > > >ue_
> > > > > > > >>>.java:54)
> > > > > > > >>> >          at
gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > > > > > >>> >
> > > > > > > >>> > I'm pretty sure that it is being called correctly
from
> >my
> > > >code
> > > > > >(which
> > > > > > > >>>works
> > > > > > > >>> > fine in 0.9.7), but it is failing now.
> > > > > > > >>> >
> > > > > > > >>> > An unrelated warning in a different application is
that
> >OJB
> > > >says
> > > > > >I
> > > > > > > >>>should
> > > > > > > >>> > use addLike() for using LIKE, but it
> > > > > > > >>> > seems to use the right code anyway.  Is this just a
> > > >deprecation
> > > > > >issue?
> > > > > > > >>>I
> > > > > > > >>> > don't see why it bothers
> > > > > > > >>> > to tell me this, if it can figure what to do anyway.
> > > > > > > >>> >
> > > > > > > >>> > Thanks,
> > > > > > > >>> >
> > > > > > > >>> > Dave
> > > > > > > >>> >
> > > > > > > >>> >
> > > > > > > >>> > --
> > > > > > > >>> > To unsubscribe, e-mail:
> > > > > > > >>><ma...@jakarta.apache.org>
> > > > > > > >>> > For additional commands, e-mail:
> > > > > > > >>><ma...@jakarta.apache.org>
> > > > > > > >>> >
> > > > > > > >>> >
> > > > > > > >>> >
> > > > > > > >>>
> > > > > > > >>>
> > > > > > > >>>--
> > > > > > > >>>To unsubscribe, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > >>>For additional commands, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > >>
> > > > > > > >>
> > > > > > > >>--
> > > > > > > >>To unsubscribe, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > >>For additional commands, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > >
> > > > > > > >
> > > > > > > >--
> > > > > > > >To unsubscribe, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > >For additional commands, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > To unsubscribe, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > > For additional commands, e-mail:
> > > > > ><ma...@jakarta.apache.org>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > >
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >--
> > > >To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > >For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > >
> >
> >
> >--
> >To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
At 09:25 PM 12/30/2002 +0100, Armin Waibel wrote:
>Hi again,
>
> > > > >
> > > > > > I see what the problem is, but am not sure what the solution
>is.
> > > > > >
> > > > > > I have a an abstract class that is implemented with a number
>of
> > > > >classes.
> > > > > > I'm trying to create a unique key for an instance class, but
>when
> > >I
> > > > > > check there are no field descriptors for the base class.
> > > > >
> > > > >Have you tried
> > > > >Class realClass = abstractBaseClass.getClass();
> > > > >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> > > > >to get the real class descriptor? Then it should possible to get
>the
> > > > >field.
> > > >
> > > > This doesn't help because I'm just calling the getUniqueId within
>OJB
> > > > and I don't have any control over what it does except through
> > > > the repository.
> > >
> > >
> > >I do not understand this. You declare your 'valueId' as a
>autoincrement
> > >field, but in your stack trace it seems you do a direct call
> > >PB.getUniqueId?
> >
> > Well I did add this because 0.9.8 was complaining about this field
>being
> > absent.  I have removed it without any change in the behavior.
> >
> >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > > >>> >
> > > >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > >
> > >Could you post a code snip to ease my understanding?
> > >But by the way this seems to be a bug.
> >
> > I'm not sure what you mean by a code snippet.  When I call the class
> > constructor,
> > I call getUniqueId with the class name and attribute:
> >
> > This is the specific method I call .
> > /**
> >       * return next number in a persistent sequence
> >       */
> >      public long getNextSeq(Class clazz, String fieldName) {
> >          cat.debug("getNextSeq: "+clazz.getName() + " "+fieldName);
> >          // return sequenceManager.getUniqueId(clazz, fieldName);
> >          try {
>                 // get the CLD for the base class
>                 ClassDescriptor cld = broker.getClassDescriptor(clazz);
>                 if( (cld.isAbstract || cld.isInterface()) &&
>cld.isExtent())
>                 {
>                     // get the first found extent class
>                       clazz = cld.getExtentClasses().get(0) // we grap
>the first
>                 }
>
> >              return broker.getUniqueId(clazz, fieldName);
> >          } catch (org.apache.ojb.broker.PersistenceBrokerException e)
>{
> >              cat.error("Can't get ID from broker: " + clazz.getName()
>+ " "
> > + fieldName, e);
> >
> >              // System.exit(1);
> >              return 0;
> >          }
> >      }
> >
>Maybe this could be a workaround for your problem.
>Keep in mind that getUniqueId(clazz, fieldName) was deprecated
>and will be replaced by getUniqueId(FieldDescriptor field).
>
>What I don't understand is, why you need a getNextSeq method,
>when you define autoincrement fields? OJB does all sequence key
>generation automatic for you.

It didn't use to.  Plus we allow for other OR mapping tools and
need some level of control of ids, independent of the tool.

OK.  I made this change and that problem went away, but another
one came up.  I now get an error from hsqldb that the requested function
is not supported:

[org.apache.ojb.broker.accesslayer.JdbcAccess] ERROR: SQLException during 
the ex
ecution of the insert (for a gov.lanl.COAS.String_): This function is not 
supported
This function is not supported
java.sql.SQLException: This function is not supported
         at org.hsqldb.Trace.getError(Trace.java:180)
         at org.hsqldb.Trace.getError(Trace.java:144)
         at org.hsqldb.Trace.error(Trace.java:192)
         at 
org.hsqldb.jdbcPreparedStatement.getNotSupported(jdbcPreparedStatemen
t.java:1602)
         at 
org.hsqldb.jdbcPreparedStatement.setCharacterStream(jdbcPreparedStatement.java:1375)
         at 
org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement(PlatformDefaultImpl.java:216)
         at 
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(StatementManager.java:487)
         at 
org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(JdbcAccess.java:194)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1966)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1905)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:614)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeReferences(PersistenceBrokerImpl.java:641)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1938)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1905)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:614)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollectionObject(PersistenceBrokerImpl.java:789)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollections(PersistenceBrokerImpl.java:769)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1989)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:1905)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:614)
         at 
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:588)
         at 
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:123)
         at 
gov.lanl.Database.OJBDatabaseMgr.insertElement(OJBDatabaseMgr.java:30

Thanks,

Dave

>HTH
>regards,
>Armin
>
> > thanks,
> >
> > Dave
> >
> >
> > >Armin
> > >
> > >
> > > >
> > > > >Or define your base class with all fields in the repository file
>and
> > > > >declare
> > > > >all extent-classes in the class-descriptor. Then the default
>sequence
> > > > >manager implementations should be able to generate a id unique
> > > > >across all extents.
> > > > >Or define only the abstract class with all extent-classes, then
>you
> > > > >should be
> > > > >able to get one of the extent classes.
> > > >
> > > > This is how I have it defined in my repository_user.xml
> > > >
> > > >    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
> > > >      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.Range_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.String_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
> > > >      <extent-class
> > >class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
> > > >      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
> > > >    </class-descriptor>
> > > >
> > > > and an example for one of the extent classes
> > > >
> > > >   <class-descriptor
> > > >         isolation-level="read-uncommitted"
> > > >         class="gov.lanl.COAS.Empty_"
> > > >         table="OjbEmpty_"
> > > >   >
> > > >     <field-descriptor id="1"
> > > >         name="valueId"
> > > >         jdbc-type="INTEGER"
> > > >         column="valueId"
> > > >         primarykey="true"
> > > >         autoincrement="true"
> > > >     />
> > > >
> > > >   </class-descriptor>
> > > >
> > > > there is no table for the ObservationValue_ class because it is an
> > >Abstract
> > > > Class.
> > > > this is what I've been using for 0.9.7 and it works fine.  this
>fails
> > >under
> > > > 0.9.8
> > > > when trying to get a uniqueid for each of the extent classes.  I
>think
> > >this
> > > > is what
> > > > you are describing in your last suggestion.
> > > >
> > > > thanks,
> > > > Dave
> > > >
> > > >
> > > > >HTH
> > > > >regards,
> > > > >Armin
> > > > >
> > > > > >
> > > > > > This all worked fine in 0.9.7, but perhaps there has been some
> > >change
> > > > > > in the semantics?  We put the necessary table elements in each
> > > > >instance
> > > > > > of the class but not in the table for the base class (which
> > >actually
> > > > > > doesn't exist).
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Dave
> > > > > >
> > > > > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > >When I put a check inside of the getFieldDescriptor, I find
>that
> > >it
> > > > >is
> > > > > > >being called by HighLowSequence
> > > > > > >with the argument ojbConcreteClass and is returning a null
>for
> > >the
> > > > > > >field.  Is this what is expected?
> > > > > > >
> > > > > > >Dave
> > > > > > >
> > > > > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > > >>It wasn't null in my code that called the OJB code.  This
>code
> > >has
> > > > >been
> > > > > > >>working fine in 0.9.7.    If the xml needed to change for
>some
> > > > >reason,
> > > > > > >>it might have caused this.  I'm passing in a string of a
> > >variable
> > > > >that
> > > > > > >>is defined in my table.   Whether OJB properly connects a
> > >"Field"
> > > > > > >>to that table is where the problem may be.   It did in the
>past
> > > > >without
> > > > > > >>any problem.   I have a hard time telling exactly what
>changed
> > > > >between
> > > > > > >>these two versions.
> > > > > > >>
> > > > > > >>Thanks,
> > > > > > >>
> > > > > > >>Dave
> > > > > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > > > > >>>Hi David,
> > > > > > >>>
> > > > > > >>>the sequence generator implementation now only generate
> > > > > > >>>id's for fields declared in the repository.
> > > > > > >>>I think you got this NullPointerException, because SM get a
> > > > > > >>>'null' field:
> > > > > > >>>
> > > > > > >>><snip SequenceManagerHelper>
> > > > > > >>>public static String buildSequenceName(
> > > > > > >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> > > > > > >>>     {
> > > > > > >>>48--->!!! ClassDescriptor cldTargetClass =
> > > > >field.getClassDescriptor();
> > > > > > >>>                 String seqName = field.getSequenceName();
> > > > > > >>>.....
> > > > > > >>></snip>
> > > > > > >>>
> > > > > > >>>So check your code if the given FiledDescriptor wasn't
>null.
> > > > > > >>>
> > > > > > >>>HTH
> > > > > > >>>
> > > > > > >>>regards,
> > > > > > >>>Armin
> > > > > > >>>
> > > > > > >>>----- Original Message -----
> > > > > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > > > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > > > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > > > > >>>Subject: Re: problems with ojb 0.9.8
> > > > > > >>>
> > > > > > >>>
> > > > > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having
>some
> > > > >problems
> > > > > > >>>that
> > > > > > >>> > I don't understand yet.
> > > > > > >>> >
> > > > > > >>> > I'm getting the warning about not finding an
>autoincrement
> > > > >attribute
> > > > > > >>>for a
> > > > > > >>> > class.  I'm not sure when
> > > > > > >>> > I have to have an autoincrement attribute, but the
> > >primarykey
> > > > >for the
> > > > > > >>>class
> > > > > > >>> > I'm using is a varchar
> > > > > > >>> > so that autoincrement doesn't seem appropriate.
> > > > > > >>> >
> > > > > > >>> > Subsequently, I get an null pointer exception error in
>the
> > > > > > >>> > SequenceManagerHelper that I don't understand:
> > > > > > >>> > java.lang.NullPointerException
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> > > > >ceN
> > > > > > >>>ame(SequenceManagerHelper.java:48)
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> > > > >Id(
> > > > > > >>>SequenceManagerHiLoImpl.java:49)
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> > > > >ist
> > > > > > >>>enceBrokerImpl.java:2258)
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > >d(D
> > > > > > >>>elegatingPersistenceBroker.java:242)
> > > > > > >>> >          at
> > > > > > >>> >
> > > >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > > >>> >          at
> > > > > > >>> >
> > > > > >
> > > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > > >ue_
> > > > > > >>>.java:54)
> > > > > > >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > > > > >>> >
> > > > > > >>> > I'm pretty sure that it is being called correctly from
>my
> > >code
> > > > >(which
> > > > > > >>>works
> > > > > > >>> > fine in 0.9.7), but it is failing now.
> > > > > > >>> >
> > > > > > >>> > An unrelated warning in a different application is that
>OJB
> > >says
> > > > >I
> > > > > > >>>should
> > > > > > >>> > use addLike() for using LIKE, but it
> > > > > > >>> > seems to use the right code anyway.  Is this just a
> > >deprecation
> > > > >issue?
> > > > > > >>>I
> > > > > > >>> > don't see why it bothers
> > > > > > >>> > to tell me this, if it can figure what to do anyway.
> > > > > > >>> >
> > > > > > >>> > Thanks,
> > > > > > >>> >
> > > > > > >>> > Dave
> > > > > > >>> >
> > > > > > >>> >
> > > > > > >>> > --
> > > > > > >>> > To unsubscribe, e-mail:
> > > > > > >>><ma...@jakarta.apache.org>
> > > > > > >>> > For additional commands, e-mail:
> > > > > > >>><ma...@jakarta.apache.org>
> > > > > > >>> >
> > > > > > >>> >
> > > > > > >>> >
> > > > > > >>>
> > > > > > >>>
> > > > > > >>>--
> > > > > > >>>To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >>>For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >>
> > > > > > >>
> > > > > > >>--
> > > > > > >>To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >>For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >
> > > > > > >
> > > > > > >--
> > > > > > >To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > >For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > >
> > > > > >
> > > > > > --
> > > > > > To unsubscribe, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > > For additional commands, e-mail:
> > > > ><ma...@jakarta.apache.org>
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >--
> > > > >To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > >
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> >
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi again,

> > > >
> > > > > I see what the problem is, but am not sure what the solution
is.
> > > > >
> > > > > I have a an abstract class that is implemented with a number
of
> > > >classes.
> > > > > I'm trying to create a unique key for an instance class, but
when
> >I
> > > > > check there are no field descriptors for the base class.
> > > >
> > > >Have you tried
> > > >Class realClass = abstractBaseClass.getClass();
> > > >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> > > >to get the real class descriptor? Then it should possible to get
the
> > > >field.
> > >
> > > This doesn't help because I'm just calling the getUniqueId within
OJB
> > > and I don't have any control over what it does except through
> > > the repository.
> >
> >
> >I do not understand this. You declare your 'valueId' as a
autoincrement
> >field, but in your stack trace it seems you do a direct call
> >PB.getUniqueId?
>
> Well I did add this because 0.9.8 was complaining about this field
being
> absent.  I have removed it without any change in the behavior.
>
>
> > > >
> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > > >>> >
> > >
>gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> >
> >Could you post a code snip to ease my understanding?
> >But by the way this seems to be a bug.
>
> I'm not sure what you mean by a code snippet.  When I call the class
> constructor,
> I call getUniqueId with the class name and attribute:
>
> This is the specific method I call .
> /**
>       * return next number in a persistent sequence
>       */
>      public long getNextSeq(Class clazz, String fieldName) {
>          cat.debug("getNextSeq: "+clazz.getName() + " "+fieldName);
>          // return sequenceManager.getUniqueId(clazz, fieldName);
>          try {
                // get the CLD for the base class
                ClassDescriptor cld = broker.getClassDescriptor(clazz);
                if( (cld.isAbstract || cld.isInterface()) &&
cld.isExtent())
                {
                    // get the first found extent class
                      clazz = cld.getExtentClasses().get(0) // we grap
the first
                }

>              return broker.getUniqueId(clazz, fieldName);
>          } catch (org.apache.ojb.broker.PersistenceBrokerException e)
{
>              cat.error("Can't get ID from broker: " + clazz.getName()
+ " "
> + fieldName, e);
>
>              // System.exit(1);
>              return 0;
>          }
>      }
>
Maybe this could be a workaround for your problem.
Keep in mind that getUniqueId(clazz, fieldName) was deprecated
and will be replaced by getUniqueId(FieldDescriptor field).

What I don't understand is, why you need a getNextSeq method,
when you define autoincrement fields? OJB does all sequence key
generation automatic for you.

HTH
regards,
Armin

> thanks,
>
> Dave
>
>
> >Armin
> >
> >
> > >
> > > >Or define your base class with all fields in the repository file
and
> > > >declare
> > > >all extent-classes in the class-descriptor. Then the default
sequence
> > > >manager implementations should be able to generate a id unique
> > > >across all extents.
> > > >Or define only the abstract class with all extent-classes, then
you
> > > >should be
> > > >able to get one of the extent classes.
> > >
> > > This is how I have it defined in my repository_user.xml
> > >
> > >    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
> > >      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.Range_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.String_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
> > >      <extent-class
> >class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
> > >      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
> > >    </class-descriptor>
> > >
> > > and an example for one of the extent classes
> > >
> > >   <class-descriptor
> > >         isolation-level="read-uncommitted"
> > >         class="gov.lanl.COAS.Empty_"
> > >         table="OjbEmpty_"
> > >   >
> > >     <field-descriptor id="1"
> > >         name="valueId"
> > >         jdbc-type="INTEGER"
> > >         column="valueId"
> > >         primarykey="true"
> > >         autoincrement="true"
> > >     />
> > >
> > >   </class-descriptor>
> > >
> > > there is no table for the ObservationValue_ class because it is an
> >Abstract
> > > Class.
> > > this is what I've been using for 0.9.7 and it works fine.  this
fails
> >under
> > > 0.9.8
> > > when trying to get a uniqueid for each of the extent classes.  I
think
> >this
> > > is what
> > > you are describing in your last suggestion.
> > >
> > > thanks,
> > > Dave
> > >
> > >
> > > >HTH
> > > >regards,
> > > >Armin
> > > >
> > > > >
> > > > > This all worked fine in 0.9.7, but perhaps there has been some
> >change
> > > > > in the semantics?  We put the necessary table elements in each
> > > >instance
> > > > > of the class but not in the table for the base class (which
> >actually
> > > > > doesn't exist).
> > > > >
> > > > > Thanks,
> > > > >
> > > > > Dave
> > > > >
> > > > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > >When I put a check inside of the getFieldDescriptor, I find
that
> >it
> > > >is
> > > > > >being called by HighLowSequence
> > > > > >with the argument ojbConcreteClass and is returning a null
for
> >the
> > > > > >field.  Is this what is expected?
> > > > > >
> > > > > >Dave
> > > > > >
> > > > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > > > >>It wasn't null in my code that called the OJB code.  This
code
> >has
> > > >been
> > > > > >>working fine in 0.9.7.    If the xml needed to change for
some
> > > >reason,
> > > > > >>it might have caused this.  I'm passing in a string of a
> >variable
> > > >that
> > > > > >>is defined in my table.   Whether OJB properly connects a
> >"Field"
> > > > > >>to that table is where the problem may be.   It did in the
past
> > > >without
> > > > > >>any problem.   I have a hard time telling exactly what
changed
> > > >between
> > > > > >>these two versions.
> > > > > >>
> > > > > >>Thanks,
> > > > > >>
> > > > > >>Dave
> > > > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > > > >>>Hi David,
> > > > > >>>
> > > > > >>>the sequence generator implementation now only generate
> > > > > >>>id's for fields declared in the repository.
> > > > > >>>I think you got this NullPointerException, because SM get a
> > > > > >>>'null' field:
> > > > > >>>
> > > > > >>><snip SequenceManagerHelper>
> > > > > >>>public static String buildSequenceName(
> > > > > >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> > > > > >>>     {
> > > > > >>>48--->!!! ClassDescriptor cldTargetClass =
> > > >field.getClassDescriptor();
> > > > > >>>                 String seqName = field.getSequenceName();
> > > > > >>>.....
> > > > > >>></snip>
> > > > > >>>
> > > > > >>>So check your code if the given FiledDescriptor wasn't
null.
> > > > > >>>
> > > > > >>>HTH
> > > > > >>>
> > > > > >>>regards,
> > > > > >>>Armin
> > > > > >>>
> > > > > >>>----- Original Message -----
> > > > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > > > >>>Subject: Re: problems with ojb 0.9.8
> > > > > >>>
> > > > > >>>
> > > > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having
some
> > > >problems
> > > > > >>>that
> > > > > >>> > I don't understand yet.
> > > > > >>> >
> > > > > >>> > I'm getting the warning about not finding an
autoincrement
> > > >attribute
> > > > > >>>for a
> > > > > >>> > class.  I'm not sure when
> > > > > >>> > I have to have an autoincrement attribute, but the
> >primarykey
> > > >for the
> > > > > >>>class
> > > > > >>> > I'm using is a varchar
> > > > > >>> > so that autoincrement doesn't seem appropriate.
> > > > > >>> >
> > > > > >>> > Subsequently, I get an null pointer exception error in
the
> > > > > >>> > SequenceManagerHelper that I don't understand:
> > > > > >>> > java.lang.NullPointerException
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> > > >ceN
> > > > > >>>ame(SequenceManagerHelper.java:48)
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> > > >Id(
> > > > > >>>SequenceManagerHiLoImpl.java:49)
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> > > >ist
> > > > > >>>enceBrokerImpl.java:2258)
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > >d(D
> > > > > >>>elegatingPersistenceBroker.java:242)
> > > > > >>> >          at
> > > > > >>> >
> > >
>gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > > >>> >          at
> > > > > >>> >
> > > > >
> > > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > > >ue_
> > > > > >>>.java:54)
> > > > > >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > > > >>> >
> > > > > >>> > I'm pretty sure that it is being called correctly from
my
> >code
> > > >(which
> > > > > >>>works
> > > > > >>> > fine in 0.9.7), but it is failing now.
> > > > > >>> >
> > > > > >>> > An unrelated warning in a different application is that
OJB
> >says
> > > >I
> > > > > >>>should
> > > > > >>> > use addLike() for using LIKE, but it
> > > > > >>> > seems to use the right code anyway.  Is this just a
> >deprecation
> > > >issue?
> > > > > >>>I
> > > > > >>> > don't see why it bothers
> > > > > >>> > to tell me this, if it can figure what to do anyway.
> > > > > >>> >
> > > > > >>> > Thanks,
> > > > > >>> >
> > > > > >>> > Dave
> > > > > >>> >
> > > > > >>> >
> > > > > >>> > --
> > > > > >>> > To unsubscribe, e-mail:
> > > > > >>><ma...@jakarta.apache.org>
> > > > > >>> > For additional commands, e-mail:
> > > > > >>><ma...@jakarta.apache.org>
> > > > > >>> >
> > > > > >>> >
> > > > > >>> >
> > > > > >>>
> > > > > >>>
> > > > > >>>--
> > > > > >>>To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >>>For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >>
> > > > > >>
> > > > > >>--
> > > > > >>To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >>For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >
> > > > > >
> > > > > >--
> > > > > >To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > >For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > >
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > > For additional commands, e-mail:
> > > ><ma...@jakarta.apache.org>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >--
> > > >To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > >For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > >
> >
> >
> >--
> >To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
At 08:51 PM 12/30/2002 +0100, Armin Waibel wrote:
>Hi again,
>
>----- Original Message -----
>From: "David Forslund" <dw...@lanl.gov>
>To: "OJB Users List" <oj...@jakarta.apache.org>; "OJB Users List"
><oj...@jakarta.apache.org>
>Sent: Monday, December 30, 2002 8:32 PM
>Subject: Re: problems with ojb 0.9.8
>
>
> > At 08:18 PM 12/30/2002 +0100, Armin Waibel wrote:
> > >Hi Dave,
> > >
> > >----- Original Message -----
> > >From: "David Forslund" <dw...@lanl.gov>
> > >To: "OJB Users List" <oj...@jakarta.apache.org>
> > >Sent: Monday, December 30, 2002 7:53 PM
> > >Subject: Re: problems with ojb 0.9.8
> > >
> > >
> > > > I see what the problem is, but am not sure what the solution is.
> > > >
> > > > I have a an abstract class that is implemented with a number of
> > >classes.
> > > > I'm trying to create a unique key for an instance class, but when
>I
> > > > check there are no field descriptors for the base class.
> > >
> > >Have you tried
> > >Class realClass = abstractBaseClass.getClass();
> > >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> > >to get the real class descriptor? Then it should possible to get the
> > >field.
> >
> > This doesn't help because I'm just calling the getUniqueId within OJB
> > and I don't have any control over what it does except through
> > the repository.
>
>
>I do not understand this. You declare your 'valueId' as a autoincrement
>field, but in your stack trace it seems you do a direct call
>PB.getUniqueId?

Well I did add this because 0.9.8 was complaining about this field being
absent.  I have removed it without any change in the behavior.


> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > > >>> >
> > >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
>
>Could you post a code snip to ease my understanding?
>But by the way this seems to be a bug.

I'm not sure what you mean by a code snippet.  When I call the class 
constructor,
I call getUniqueId with the class name and attribute:

This is the specific method I call .
/**
      * return next number in a persistent sequence
      */
     public long getNextSeq(Class clazz, String fieldName) {
         cat.debug("getNextSeq: "+clazz.getName() + " "+fieldName);
         // return sequenceManager.getUniqueId(clazz, fieldName);
         try {
             return broker.getUniqueId(clazz, fieldName);
         } catch (org.apache.ojb.broker.PersistenceBrokerException e) {
             cat.error("Can't get ID from broker: " + clazz.getName() + " " 
+ fieldName, e);

             // System.exit(1);
             return 0;
         }
     }

thanks,

Dave


>Armin
>
>
> >
> > >Or define your base class with all fields in the repository file and
> > >declare
> > >all extent-classes in the class-descriptor. Then the default sequence
> > >manager implementations should be able to generate a id unique
> > >across all extents.
> > >Or define only the abstract class with all extent-classes, then you
> > >should be
> > >able to get one of the extent classes.
> >
> > This is how I have it defined in my repository_user.xml
> >
> >    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
> >      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
> >      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
> >      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
> >      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
> >      <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
> >      <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
> >      <extent-class class-ref="gov.lanl.COAS.Range_"/>
> >      <extent-class class-ref="gov.lanl.COAS.String_"/>
> >      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
> >      <extent-class
>class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
> >      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
> >    </class-descriptor>
> >
> > and an example for one of the extent classes
> >
> >   <class-descriptor
> >         isolation-level="read-uncommitted"
> >         class="gov.lanl.COAS.Empty_"
> >         table="OjbEmpty_"
> >   >
> >     <field-descriptor id="1"
> >         name="valueId"
> >         jdbc-type="INTEGER"
> >         column="valueId"
> >         primarykey="true"
> >         autoincrement="true"
> >     />
> >
> >   </class-descriptor>
> >
> > there is no table for the ObservationValue_ class because it is an
>Abstract
> > Class.
> > this is what I've been using for 0.9.7 and it works fine.  this fails
>under
> > 0.9.8
> > when trying to get a uniqueid for each of the extent classes.  I think
>this
> > is what
> > you are describing in your last suggestion.
> >
> > thanks,
> > Dave
> >
> >
> > >HTH
> > >regards,
> > >Armin
> > >
> > > >
> > > > This all worked fine in 0.9.7, but perhaps there has been some
>change
> > > > in the semantics?  We put the necessary table elements in each
> > >instance
> > > > of the class but not in the table for the base class (which
>actually
> > > > doesn't exist).
> > > >
> > > > Thanks,
> > > >
> > > > Dave
> > > >
> > > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > > >When I put a check inside of the getFieldDescriptor, I find that
>it
> > >is
> > > > >being called by HighLowSequence
> > > > >with the argument ojbConcreteClass and is returning a null for
>the
> > > > >field.  Is this what is expected?
> > > > >
> > > > >Dave
> > > > >
> > > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > > >>It wasn't null in my code that called the OJB code.  This code
>has
> > >been
> > > > >>working fine in 0.9.7.    If the xml needed to change for some
> > >reason,
> > > > >>it might have caused this.  I'm passing in a string of a
>variable
> > >that
> > > > >>is defined in my table.   Whether OJB properly connects a
>"Field"
> > > > >>to that table is where the problem may be.   It did in the past
> > >without
> > > > >>any problem.   I have a hard time telling exactly what changed
> > >between
> > > > >>these two versions.
> > > > >>
> > > > >>Thanks,
> > > > >>
> > > > >>Dave
> > > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > > >>>Hi David,
> > > > >>>
> > > > >>>the sequence generator implementation now only generate
> > > > >>>id's for fields declared in the repository.
> > > > >>>I think you got this NullPointerException, because SM get a
> > > > >>>'null' field:
> > > > >>>
> > > > >>><snip SequenceManagerHelper>
> > > > >>>public static String buildSequenceName(
> > > > >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> > > > >>>     {
> > > > >>>48--->!!! ClassDescriptor cldTargetClass =
> > >field.getClassDescriptor();
> > > > >>>                 String seqName = field.getSequenceName();
> > > > >>>.....
> > > > >>></snip>
> > > > >>>
> > > > >>>So check your code if the given FiledDescriptor wasn't null.
> > > > >>>
> > > > >>>HTH
> > > > >>>
> > > > >>>regards,
> > > > >>>Armin
> > > > >>>
> > > > >>>----- Original Message -----
> > > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > > >>>Subject: Re: problems with ojb 0.9.8
> > > > >>>
> > > > >>>
> > > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some
> > >problems
> > > > >>>that
> > > > >>> > I don't understand yet.
> > > > >>> >
> > > > >>> > I'm getting the warning about not finding an autoincrement
> > >attribute
> > > > >>>for a
> > > > >>> > class.  I'm not sure when
> > > > >>> > I have to have an autoincrement attribute, but the
>primarykey
> > >for the
> > > > >>>class
> > > > >>> > I'm using is a varchar
> > > > >>> > so that autoincrement doesn't seem appropriate.
> > > > >>> >
> > > > >>> > Subsequently, I get an null pointer exception error in the
> > > > >>> > SequenceManagerHelper that I don't understand:
> > > > >>> > java.lang.NullPointerException
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> > >ceN
> > > > >>>ame(SequenceManagerHelper.java:48)
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> > >Id(
> > > > >>>SequenceManagerHiLoImpl.java:49)
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> > >ist
> > > > >>>enceBrokerImpl.java:2258)
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > >d(D
> > > > >>>elegatingPersistenceBroker.java:242)
> > > > >>> >          at
> > > > >>> >
> > >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > > >>> >          at
> > > > >>> >
> > > >
> > >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> > >ue_
> > > > >>>.java:54)
> > > > >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > > >>> >
> > > > >>> > I'm pretty sure that it is being called correctly from my
>code
> > >(which
> > > > >>>works
> > > > >>> > fine in 0.9.7), but it is failing now.
> > > > >>> >
> > > > >>> > An unrelated warning in a different application is that OJB
>says
> > >I
> > > > >>>should
> > > > >>> > use addLike() for using LIKE, but it
> > > > >>> > seems to use the right code anyway.  Is this just a
>deprecation
> > >issue?
> > > > >>>I
> > > > >>> > don't see why it bothers
> > > > >>> > to tell me this, if it can figure what to do anyway.
> > > > >>> >
> > > > >>> > Thanks,
> > > > >>> >
> > > > >>> > Dave
> > > > >>> >
> > > > >>> >
> > > > >>> > --
> > > > >>> > To unsubscribe, e-mail:
> > > > >>><ma...@jakarta.apache.org>
> > > > >>> > For additional commands, e-mail:
> > > > >>><ma...@jakarta.apache.org>
> > > > >>> >
> > > > >>> >
> > > > >>> >
> > > > >>>
> > > > >>>
> > > > >>>--
> > > > >>>To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >>>For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >>
> > > > >>
> > > > >>--
> > > > >>To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >>For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >
> > > > >
> > > > >--
> > > > >To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > >For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > ><ma...@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > >
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> >
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi again,

----- Original Message -----
From: "David Forslund" <dw...@lanl.gov>
To: "OJB Users List" <oj...@jakarta.apache.org>; "OJB Users List"
<oj...@jakarta.apache.org>
Sent: Monday, December 30, 2002 8:32 PM
Subject: Re: problems with ojb 0.9.8


> At 08:18 PM 12/30/2002 +0100, Armin Waibel wrote:
> >Hi Dave,
> >
> >----- Original Message -----
> >From: "David Forslund" <dw...@lanl.gov>
> >To: "OJB Users List" <oj...@jakarta.apache.org>
> >Sent: Monday, December 30, 2002 7:53 PM
> >Subject: Re: problems with ojb 0.9.8
> >
> >
> > > I see what the problem is, but am not sure what the solution is.
> > >
> > > I have a an abstract class that is implemented with a number of
> >classes.
> > > I'm trying to create a unique key for an instance class, but when
I
> > > check there are no field descriptors for the base class.
> >
> >Have you tried
> >Class realClass = abstractBaseClass.getClass();
> >ClassDescriptor cld = broker.getClassDescriptor(realClass);
> >to get the real class descriptor? Then it should possible to get the
> >field.
>
> This doesn't help because I'm just calling the getUniqueId within OJB
> and I don't have any control over what it does except through
> the repository.


I do not understand this. You declare your 'valueId' as a autoincrement
field, but in your stack trace it seems you do a direct call
PB.getUniqueId?

> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> > > >>> >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > >>> >          at
> > > >>> >
> > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal

Could you post a code snip to ease my understanding?
But by the way this seems to be a bug.

Armin


>
> >Or define your base class with all fields in the repository file and
> >declare
> >all extent-classes in the class-descriptor. Then the default sequence
> >manager implementations should be able to generate a id unique
> >across all extents.
> >Or define only the abstract class with all extent-classes, then you
> >should be
> >able to get one of the extent classes.
>
> This is how I have it defined in my repository_user.xml
>
>    <class-descriptor class="gov.lanl.COAS.ObservationValue_">
>      <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
>      <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
>      <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
>      <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
>      <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
>      <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
>      <extent-class class-ref="gov.lanl.COAS.Range_"/>
>      <extent-class class-ref="gov.lanl.COAS.String_"/>
>      <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
>      <extent-class
class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
>      <extent-class class-ref="gov.lanl.COAS.Empty_"/>
>    </class-descriptor>
>
> and an example for one of the extent classes
>
>   <class-descriptor
>         isolation-level="read-uncommitted"
>         class="gov.lanl.COAS.Empty_"
>         table="OjbEmpty_"
>   >
>     <field-descriptor id="1"
>         name="valueId"
>         jdbc-type="INTEGER"
>         column="valueId"
>         primarykey="true"
>         autoincrement="true"
>     />
>
>   </class-descriptor>
>
> there is no table for the ObservationValue_ class because it is an
Abstract
> Class.
> this is what I've been using for 0.9.7 and it works fine.  this fails
under
> 0.9.8
> when trying to get a uniqueid for each of the extent classes.  I think
this
> is what
> you are describing in your last suggestion.
>
> thanks,
> Dave
>
>
> >HTH
> >regards,
> >Armin
> >
> > >
> > > This all worked fine in 0.9.7, but perhaps there has been some
change
> > > in the semantics?  We put the necessary table elements in each
> >instance
> > > of the class but not in the table for the base class (which
actually
> > > doesn't exist).
> > >
> > > Thanks,
> > >
> > > Dave
> > >
> > > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > > >When I put a check inside of the getFieldDescriptor, I find that
it
> >is
> > > >being called by HighLowSequence
> > > >with the argument ojbConcreteClass and is returning a null for
the
> > > >field.  Is this what is expected?
> > > >
> > > >Dave
> > > >
> > > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > > >>It wasn't null in my code that called the OJB code.  This code
has
> >been
> > > >>working fine in 0.9.7.    If the xml needed to change for some
> >reason,
> > > >>it might have caused this.  I'm passing in a string of a
variable
> >that
> > > >>is defined in my table.   Whether OJB properly connects a
"Field"
> > > >>to that table is where the problem may be.   It did in the past
> >without
> > > >>any problem.   I have a hard time telling exactly what changed
> >between
> > > >>these two versions.
> > > >>
> > > >>Thanks,
> > > >>
> > > >>Dave
> > > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > > >>>Hi David,
> > > >>>
> > > >>>the sequence generator implementation now only generate
> > > >>>id's for fields declared in the repository.
> > > >>>I think you got this NullPointerException, because SM get a
> > > >>>'null' field:
> > > >>>
> > > >>><snip SequenceManagerHelper>
> > > >>>public static String buildSequenceName(
> > > >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> > > >>>     {
> > > >>>48--->!!! ClassDescriptor cldTargetClass =
> >field.getClassDescriptor();
> > > >>>                 String seqName = field.getSequenceName();
> > > >>>.....
> > > >>></snip>
> > > >>>
> > > >>>So check your code if the given FiledDescriptor wasn't null.
> > > >>>
> > > >>>HTH
> > > >>>
> > > >>>regards,
> > > >>>Armin
> > > >>>
> > > >>>----- Original Message -----
> > > >>>From: "David Forslund" <dw...@lanl.gov>
> > > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > > >>>Sent: Monday, December 30, 2002 1:33 AM
> > > >>>Subject: Re: problems with ojb 0.9.8
> > > >>>
> > > >>>
> > > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some
> >problems
> > > >>>that
> > > >>> > I don't understand yet.
> > > >>> >
> > > >>> > I'm getting the warning about not finding an autoincrement
> >attribute
> > > >>>for a
> > > >>> > class.  I'm not sure when
> > > >>> > I have to have an autoincrement attribute, but the
primarykey
> >for the
> > > >>>class
> > > >>> > I'm using is a varchar
> > > >>> > so that autoincrement doesn't seem appropriate.
> > > >>> >
> > > >>> > Subsequently, I get an null pointer exception error in the
> > > >>> > SequenceManagerHelper that I don't understand:
> > > >>> > java.lang.NullPointerException
> > > >>> >          at
> > > >>> >
> > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
> >ceN
> > > >>>ame(SequenceManagerHelper.java:48)
> > > >>> >          at
> > > >>> >
> > >
> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
> >Id(
> > > >>>SequenceManagerHiLoImpl.java:49)
> > > >>> >          at
> > > >>> >
> > >
> >
>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
> >ist
> > > >>>enceBrokerImpl.java:2258)
> > > >>> >          at
> > > >>> >
> > >
> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
> >d(D
> > > >>>elegatingPersistenceBroker.java:242)
> > > >>> >          at
> > > >>> >
> >gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > > >>> >          at
> > > >>> >
> > >
> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
> >ue_
> > > >>>.java:54)
> > > >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > > >>> >
> > > >>> > I'm pretty sure that it is being called correctly from my
code
> >(which
> > > >>>works
> > > >>> > fine in 0.9.7), but it is failing now.
> > > >>> >
> > > >>> > An unrelated warning in a different application is that OJB
says
> >I
> > > >>>should
> > > >>> > use addLike() for using LIKE, but it
> > > >>> > seems to use the right code anyway.  Is this just a
deprecation
> >issue?
> > > >>>I
> > > >>> > don't see why it bothers
> > > >>> > to tell me this, if it can figure what to do anyway.
> > > >>> >
> > > >>> > Thanks,
> > > >>> >
> > > >>> > Dave
> > > >>> >
> > > >>> >
> > > >>> > --
> > > >>> > To unsubscribe, e-mail:
> > > >>><ma...@jakarta.apache.org>
> > > >>> > For additional commands, e-mail:
> > > >>><ma...@jakarta.apache.org>
> > > >>> >
> > > >>> >
> > > >>> >
> > > >>>
> > > >>>
> > > >>>--
> > > >>>To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > >>>For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > > >>
> > > >>
> > > >>--
> > > >>To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > >>For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > > >
> > > >
> > > >--
> > > >To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > >For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> ><ma...@jakarta.apache.org>
> > > For additional commands, e-mail:
> ><ma...@jakarta.apache.org>
> > >
> > >
> > >
> >
> >
> >--
> >To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
At 08:18 PM 12/30/2002 +0100, Armin Waibel wrote:
>Hi Dave,
>
>----- Original Message -----
>From: "David Forslund" <dw...@lanl.gov>
>To: "OJB Users List" <oj...@jakarta.apache.org>
>Sent: Monday, December 30, 2002 7:53 PM
>Subject: Re: problems with ojb 0.9.8
>
>
> > I see what the problem is, but am not sure what the solution is.
> >
> > I have a an abstract class that is implemented with a number of
>classes.
> > I'm trying to create a unique key for an instance class, but when I
> > check there are no field descriptors for the base class.
>
>Have you tried
>Class realClass = abstractBaseClass.getClass();
>ClassDescriptor cld = broker.getClassDescriptor(realClass);
>to get the real class descriptor? Then it should possible to get the
>field.

This doesn't help because I'm just calling the getUniqueId within OJB
and I don't have any control over what it does except through
the repository.

>Or define your base class with all fields in the repository file and
>declare
>all extent-classes in the class-descriptor. Then the default sequence
>manager implementations should be able to generate a id unique
>across all extents.
>Or define only the abstract class with all extent-classes, then you
>should be
>able to get one of the extent classes.

This is how I have it defined in my repository_user.xml

   <class-descriptor class="gov.lanl.COAS.ObservationValue_">
     <extent-class class-ref="gov.lanl.COAS.Multimedia_"/>
     <extent-class class-ref="gov.lanl.COAS.NoInformation_"/>
     <extent-class class-ref="gov.lanl.COAS.Numeric_"/>
     <extent-class class-ref="gov.lanl.COAS.ObservationId_"/>
     <extent-class class-ref="gov.lanl.COAS.QualifiedCodeInfo_"/>
     <extent-class class-ref="gov.lanl.COAS.QualifiedPersonId_"/>
     <extent-class class-ref="gov.lanl.COAS.Range_"/>
     <extent-class class-ref="gov.lanl.COAS.String_"/>
     <extent-class class-ref="gov.lanl.COAS.TimeSpan_"/>
     <extent-class class-ref="gov.lanl.COAS.UniversalResourceIdentifier_"/>
     <extent-class class-ref="gov.lanl.COAS.Empty_"/>
   </class-descriptor>

and an example for one of the extent classes

  <class-descriptor
        isolation-level="read-uncommitted"
        class="gov.lanl.COAS.Empty_"
        table="OjbEmpty_"
  >
    <field-descriptor id="1"
        name="valueId"
        jdbc-type="INTEGER"
        column="valueId"
        primarykey="true"
        autoincrement="true"
    />

  </class-descriptor>

there is no table for the ObservationValue_ class because it is an Abstract 
Class.
this is what I've been using for 0.9.7 and it works fine.  this fails under 
0.9.8
when trying to get a uniqueid for each of the extent classes.  I think this 
is what
you are describing in your last suggestion.

thanks,
Dave


>HTH
>regards,
>Armin
>
> >
> > This all worked fine in 0.9.7, but perhaps there has been some change
> > in the semantics?  We put the necessary table elements in each
>instance
> > of the class but not in the table for the base class (which actually
> > doesn't exist).
> >
> > Thanks,
> >
> > Dave
> >
> > At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> > >When I put a check inside of the getFieldDescriptor, I find that it
>is
> > >being called by HighLowSequence
> > >with the argument ojbConcreteClass and is returning a null for the
> > >field.  Is this what is expected?
> > >
> > >Dave
> > >
> > >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> > >>It wasn't null in my code that called the OJB code.  This code has
>been
> > >>working fine in 0.9.7.    If the xml needed to change for some
>reason,
> > >>it might have caused this.  I'm passing in a string of a variable
>that
> > >>is defined in my table.   Whether OJB properly connects a "Field"
> > >>to that table is where the problem may be.   It did in the past
>without
> > >>any problem.   I have a hard time telling exactly what changed
>between
> > >>these two versions.
> > >>
> > >>Thanks,
> > >>
> > >>Dave
> > >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> > >>>Hi David,
> > >>>
> > >>>the sequence generator implementation now only generate
> > >>>id's for fields declared in the repository.
> > >>>I think you got this NullPointerException, because SM get a
> > >>>'null' field:
> > >>>
> > >>><snip SequenceManagerHelper>
> > >>>public static String buildSequenceName(
> > >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> > >>>     {
> > >>>48--->!!! ClassDescriptor cldTargetClass =
>field.getClassDescriptor();
> > >>>                 String seqName = field.getSequenceName();
> > >>>.....
> > >>></snip>
> > >>>
> > >>>So check your code if the given FiledDescriptor wasn't null.
> > >>>
> > >>>HTH
> > >>>
> > >>>regards,
> > >>>Armin
> > >>>
> > >>>----- Original Message -----
> > >>>From: "David Forslund" <dw...@lanl.gov>
> > >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> > >>>Sent: Monday, December 30, 2002 1:33 AM
> > >>>Subject: Re: problems with ojb 0.9.8
> > >>>
> > >>>
> > >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some
>problems
> > >>>that
> > >>> > I don't understand yet.
> > >>> >
> > >>> > I'm getting the warning about not finding an autoincrement
>attribute
> > >>>for a
> > >>> > class.  I'm not sure when
> > >>> > I have to have an autoincrement attribute, but the primarykey
>for the
> > >>>class
> > >>> > I'm using is a varchar
> > >>> > so that autoincrement doesn't seem appropriate.
> > >>> >
> > >>> > Subsequently, I get an null pointer exception error in the
> > >>> > SequenceManagerHelper that I don't understand:
> > >>> > java.lang.NullPointerException
> > >>> >          at
> > >>> >
> >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
>ceN
> > >>>ame(SequenceManagerHelper.java:48)
> > >>> >          at
> > >>> >
> >
> >>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
>Id(
> > >>>SequenceManagerHiLoImpl.java:49)
> > >>> >          at
> > >>> >
> >
> >>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
>ist
> > >>>enceBrokerImpl.java:2258)
> > >>> >          at
> > >>> >
> >
> >>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
>d(D
> > >>>elegatingPersistenceBroker.java:242)
> > >>> >          at
> > >>> >
>gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> > >>> >          at
> > >>> >
> >
> >>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
>ue_
> > >>>.java:54)
> > >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> > >>> >
> > >>> > I'm pretty sure that it is being called correctly from my code
>(which
> > >>>works
> > >>> > fine in 0.9.7), but it is failing now.
> > >>> >
> > >>> > An unrelated warning in a different application is that OJB says
>I
> > >>>should
> > >>> > use addLike() for using LIKE, but it
> > >>> > seems to use the right code anyway.  Is this just a deprecation
>issue?
> > >>>I
> > >>> > don't see why it bothers
> > >>> > to tell me this, if it can figure what to do anyway.
> > >>> >
> > >>> > Thanks,
> > >>> >
> > >>> > Dave
> > >>> >
> > >>> >
> > >>> > --
> > >>> > To unsubscribe, e-mail:
> > >>><ma...@jakarta.apache.org>
> > >>> > For additional commands, e-mail:
> > >>><ma...@jakarta.apache.org>
> > >>> >
> > >>> >
> > >>> >
> > >>>
> > >>>
> > >>>--
> > >>>To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >>>For additional commands, e-mail:
><ma...@jakarta.apache.org>
> > >>
> > >>
> > >>--
> > >>To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >>For additional commands, e-mail:
><ma...@jakarta.apache.org>
> > >
> > >
> > >--
> > >To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> >
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi Dave,

----- Original Message -----
From: "David Forslund" <dw...@lanl.gov>
To: "OJB Users List" <oj...@jakarta.apache.org>
Sent: Monday, December 30, 2002 7:53 PM
Subject: Re: problems with ojb 0.9.8


> I see what the problem is, but am not sure what the solution is.
>
> I have a an abstract class that is implemented with a number of
classes.
> I'm trying to create a unique key for an instance class, but when I
> check there are no field descriptors for the base class.

Have you tried
Class realClass = abstractBaseClass.getClass();
ClassDescriptor cld = broker.getClassDescriptor(realClass);
to get the real class descriptor? Then it should possible to get the
field.
Or define your base class with all fields in the repository file and
declare
all extent-classes in the class-descriptor. Then the default sequence
manager implementations should be able to generate a id unique
across all extents.
Or define only the abstract class with all extent-classes, then you
should be
able to get one of the extent classes.

HTH
regards,
Armin

>
> This all worked fine in 0.9.7, but perhaps there has been some change
> in the semantics?  We put the necessary table elements in each
instance
> of the class but not in the table for the base class (which actually
> doesn't exist).
>
> Thanks,
>
> Dave
>
> At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
> >When I put a check inside of the getFieldDescriptor, I find that it
is
> >being called by HighLowSequence
> >with the argument ojbConcreteClass and is returning a null for the
> >field.  Is this what is expected?
> >
> >Dave
> >
> >At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
> >>It wasn't null in my code that called the OJB code.  This code has
been
> >>working fine in 0.9.7.    If the xml needed to change for some
reason,
> >>it might have caused this.  I'm passing in a string of a variable
that
> >>is defined in my table.   Whether OJB properly connects a "Field"
> >>to that table is where the problem may be.   It did in the past
without
> >>any problem.   I have a hard time telling exactly what changed
between
> >>these two versions.
> >>
> >>Thanks,
> >>
> >>Dave
> >>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
> >>>Hi David,
> >>>
> >>>the sequence generator implementation now only generate
> >>>id's for fields declared in the repository.
> >>>I think you got this NullPointerException, because SM get a
> >>>'null' field:
> >>>
> >>><snip SequenceManagerHelper>
> >>>public static String buildSequenceName(
> >>>PersistenceBroker brokerForClass, FieldDescriptor field)
> >>>     {
> >>>48--->!!! ClassDescriptor cldTargetClass =
field.getClassDescriptor();
> >>>                 String seqName = field.getSequenceName();
> >>>.....
> >>></snip>
> >>>
> >>>So check your code if the given FiledDescriptor wasn't null.
> >>>
> >>>HTH
> >>>
> >>>regards,
> >>>Armin
> >>>
> >>>----- Original Message -----
> >>>From: "David Forslund" <dw...@lanl.gov>
> >>>To: "OJB Users List" <oj...@jakarta.apache.org>
> >>>Sent: Monday, December 30, 2002 1:33 AM
> >>>Subject: Re: problems with ojb 0.9.8
> >>>
> >>>
> >>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some
problems
> >>>that
> >>> > I don't understand yet.
> >>> >
> >>> > I'm getting the warning about not finding an autoincrement
attribute
> >>>for a
> >>> > class.  I'm not sure when
> >>> > I have to have an autoincrement attribute, but the primarykey
for the
> >>>class
> >>> > I'm using is a varchar
> >>> > so that autoincrement doesn't seem appropriate.
> >>> >
> >>> > Subsequently, I get an null pointer exception error in the
> >>> > SequenceManagerHelper that I don't understand:
> >>> > java.lang.NullPointerException
> >>> >          at
> >>> >
>
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequen
ceN
> >>>ame(SequenceManagerHelper.java:48)
> >>> >          at
> >>> >
>
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUnique
Id(
> >>>SequenceManagerHiLoImpl.java:49)
> >>> >          at
> >>> >
>
>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Pers
ist
> >>>enceBrokerImpl.java:2258)
> >>> >          at
> >>> >
>
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueI
d(D
> >>>elegatingPersistenceBroker.java:242)
> >>> >          at
> >>> >
gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> >>> >          at
> >>> >
>
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationVal
ue_
> >>>.java:54)
> >>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> >>> >
> >>> > I'm pretty sure that it is being called correctly from my code
(which
> >>>works
> >>> > fine in 0.9.7), but it is failing now.
> >>> >
> >>> > An unrelated warning in a different application is that OJB says
I
> >>>should
> >>> > use addLike() for using LIKE, but it
> >>> > seems to use the right code anyway.  Is this just a deprecation
issue?
> >>>I
> >>> > don't see why it bothers
> >>> > to tell me this, if it can figure what to do anyway.
> >>> >
> >>> > Thanks,
> >>> >
> >>> > Dave
> >>> >
> >>> >
> >>> > --
> >>> > To unsubscribe, e-mail:
> >>><ma...@jakarta.apache.org>
> >>> > For additional commands, e-mail:
> >>><ma...@jakarta.apache.org>
> >>> >
> >>> >
> >>> >
> >>>
> >>>
> >>>--
> >>>To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >>>For additional commands, e-mail:
<ma...@jakarta.apache.org>
> >>
> >>
> >>--
> >>To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >>For additional commands, e-mail:
<ma...@jakarta.apache.org>
> >
> >
> >--
> >To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> >For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
I see what the problem is, but am not sure what the solution is.

I have a an abstract class that is implemented with a number of classes.
I'm trying to create a unique key for an instance class, but when I
check there are no field descriptors for the base class.

This all worked fine in 0.9.7, but perhaps there has been some change
in the semantics?  We put the necessary table elements in each instance
of the class but not in the table for the base class (which actually 
doesn't exist).

Thanks,

Dave

At 11:35 AM 12/30/2002 -0700, David Forslund wrote:
>When I put a check inside of the getFieldDescriptor, I find that it is 
>being called by HighLowSequence
>with the argument ojbConcreteClass and is returning a null for the 
>field.  Is this what is expected?
>
>Dave
>
>At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
>>It wasn't null in my code that called the OJB code.  This code has been
>>working fine in 0.9.7.    If the xml needed to change for some reason,
>>it might have caused this.  I'm passing in a string of a variable that
>>is defined in my table.   Whether OJB properly connects a "Field"
>>to that table is where the problem may be.   It did in the past without
>>any problem.   I have a hard time telling exactly what changed between
>>these two versions.
>>
>>Thanks,
>>
>>Dave
>>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
>>>Hi David,
>>>
>>>the sequence generator implementation now only generate
>>>id's for fields declared in the repository.
>>>I think you got this NullPointerException, because SM get a
>>>'null' field:
>>>
>>><snip SequenceManagerHelper>
>>>public static String buildSequenceName(
>>>PersistenceBroker brokerForClass, FieldDescriptor field)
>>>     {
>>>48--->!!! ClassDescriptor cldTargetClass = field.getClassDescriptor();
>>>                 String seqName = field.getSequenceName();
>>>.....
>>></snip>
>>>
>>>So check your code if the given FiledDescriptor wasn't null.
>>>
>>>HTH
>>>
>>>regards,
>>>Armin
>>>
>>>----- Original Message -----
>>>From: "David Forslund" <dw...@lanl.gov>
>>>To: "OJB Users List" <oj...@jakarta.apache.org>
>>>Sent: Monday, December 30, 2002 1:33 AM
>>>Subject: Re: problems with ojb 0.9.8
>>>
>>>
>>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems
>>>that
>>> > I don't understand yet.
>>> >
>>> > I'm getting the warning about not finding an autoincrement attribute
>>>for a
>>> > class.  I'm not sure when
>>> > I have to have an autoincrement attribute, but the primarykey for the
>>>class
>>> > I'm using is a varchar
>>> > so that autoincrement doesn't seem appropriate.
>>> >
>>> > Subsequently, I get an null pointer exception error in the
>>> > SequenceManagerHelper that I don't understand:
>>> > java.lang.NullPointerException
>>> >          at
>>> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceN
>>>ame(SequenceManagerHelper.java:48)
>>> >          at
>>> >
>>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(
>>>SequenceManagerHiLoImpl.java:49)
>>> >          at
>>> >
>>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Persist
>>>enceBrokerImpl.java:2258)
>>> >          at
>>> >
>>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(D
>>>elegatingPersistenceBroker.java:242)
>>> >          at
>>> > gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
>>> >          at
>>> >
>>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_
>>>.java:54)
>>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
>>> >
>>> > I'm pretty sure that it is being called correctly from my code (which
>>>works
>>> > fine in 0.9.7), but it is failing now.
>>> >
>>> > An unrelated warning in a different application is that OJB says I
>>>should
>>> > use addLike() for using LIKE, but it
>>> > seems to use the right code anyway.  Is this just a deprecation issue?
>>>I
>>> > don't see why it bothers
>>> > to tell me this, if it can figure what to do anyway.
>>> >
>>> > Thanks,
>>> >
>>> > Dave
>>> >
>>> >
>>> > --
>>> > To unsubscribe, e-mail:
>>><ma...@jakarta.apache.org>
>>> > For additional commands, e-mail:
>>><ma...@jakarta.apache.org>
>>> >
>>> >
>>> >
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>>
>>
>>--
>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
When I put a check inside of the getFieldDescriptor, I find that it is 
being called by HighLowSequence
with the argument ojbConcreteClass and is returning a null for the 
field.  Is this what is expected?

Dave

At 10:43 AM 12/30/2002 -0700, David Forslund wrote:
>It wasn't null in my code that called the OJB code.  This code has been
>working fine in 0.9.7.    If the xml needed to change for some reason,
>it might have caused this.  I'm passing in a string of a variable that
>is defined in my table.   Whether OJB properly connects a "Field"
>to that table is where the problem may be.   It did in the past without
>any problem.   I have a hard time telling exactly what changed between
>these two versions.
>
>Thanks,
>
>Dave
>At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
>>Hi David,
>>
>>the sequence generator implementation now only generate
>>id's for fields declared in the repository.
>>I think you got this NullPointerException, because SM get a
>>'null' field:
>>
>><snip SequenceManagerHelper>
>>public static String buildSequenceName(
>>PersistenceBroker brokerForClass, FieldDescriptor field)
>>     {
>>48--->!!! ClassDescriptor cldTargetClass = field.getClassDescriptor();
>>                 String seqName = field.getSequenceName();
>>.....
>></snip>
>>
>>So check your code if the given FiledDescriptor wasn't null.
>>
>>HTH
>>
>>regards,
>>Armin
>>
>>----- Original Message -----
>>From: "David Forslund" <dw...@lanl.gov>
>>To: "OJB Users List" <oj...@jakarta.apache.org>
>>Sent: Monday, December 30, 2002 1:33 AM
>>Subject: Re: problems with ojb 0.9.8
>>
>>
>> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems
>>that
>> > I don't understand yet.
>> >
>> > I'm getting the warning about not finding an autoincrement attribute
>>for a
>> > class.  I'm not sure when
>> > I have to have an autoincrement attribute, but the primarykey for the
>>class
>> > I'm using is a varchar
>> > so that autoincrement doesn't seem appropriate.
>> >
>> > Subsequently, I get an null pointer exception error in the
>> > SequenceManagerHelper that I don't understand:
>> > java.lang.NullPointerException
>> >          at
>> >
>>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceN
>>ame(SequenceManagerHelper.java:48)
>> >          at
>> >
>>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(
>>SequenceManagerHiLoImpl.java:49)
>> >          at
>> >
>>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Persist
>>enceBrokerImpl.java:2258)
>> >          at
>> >
>>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(D
>>elegatingPersistenceBroker.java:242)
>> >          at
>> > gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
>> >          at
>> >
>>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_
>>.java:54)
>> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
>> >
>> > I'm pretty sure that it is being called correctly from my code (which
>>works
>> > fine in 0.9.7), but it is failing now.
>> >
>> > An unrelated warning in a different application is that OJB says I
>>should
>> > use addLike() for using LIKE, but it
>> > seems to use the right code anyway.  Is this just a deprecation issue?
>>I
>> > don't see why it bothers
>> > to tell me this, if it can figure what to do anyway.
>> >
>> > Thanks,
>> >
>> > Dave
>> >
>> >
>> > --
>> > To unsubscribe, e-mail:
>><ma...@jakarta.apache.org>
>> > For additional commands, e-mail:
>><ma...@jakarta.apache.org>
>> >
>> >
>> >
>>
>>
>>--
>>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>>For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by David Forslund <dw...@lanl.gov>.
It wasn't null in my code that called the OJB code.  This code has been
working fine in 0.9.7.    If the xml needed to change for some reason,
it might have caused this.  I'm passing in a string of a variable that
is defined in my table.   Whether OJB properly connects a "Field"
to that table is where the problem may be.   It did in the past without
any problem.   I have a hard time telling exactly what changed between
these two versions.

Thanks,

Dave
At 01:49 PM 12/30/2002 +0100, Armin Waibel wrote:
>Hi David,
>
>the sequence generator implementation now only generate
>id's for fields declared in the repository.
>I think you got this NullPointerException, because SM get a
>'null' field:
>
><snip SequenceManagerHelper>
>public static String buildSequenceName(
>PersistenceBroker brokerForClass, FieldDescriptor field)
>     {
>48--->!!! ClassDescriptor cldTargetClass = field.getClassDescriptor();
>                 String seqName = field.getSequenceName();
>.....
></snip>
>
>So check your code if the given FiledDescriptor wasn't null.
>
>HTH
>
>regards,
>Armin
>
>----- Original Message -----
>From: "David Forslund" <dw...@lanl.gov>
>To: "OJB Users List" <oj...@jakarta.apache.org>
>Sent: Monday, December 30, 2002 1:33 AM
>Subject: Re: problems with ojb 0.9.8
>
>
> > I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems
>that
> > I don't understand yet.
> >
> > I'm getting the warning about not finding an autoincrement attribute
>for a
> > class.  I'm not sure when
> > I have to have an autoincrement attribute, but the primarykey for the
>class
> > I'm using is a varchar
> > so that autoincrement doesn't seem appropriate.
> >
> > Subsequently, I get an null pointer exception error in the
> > SequenceManagerHelper that I don't understand:
> > java.lang.NullPointerException
> >          at
> >
>org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceN
>ame(SequenceManagerHelper.java:48)
> >          at
> >
>org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(
>SequenceManagerHiLoImpl.java:49)
> >          at
> >
>org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Persist
>enceBrokerImpl.java:2258)
> >          at
> >
>org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(D
>elegatingPersistenceBroker.java:242)
> >          at
> > gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
> >          at
> >
>gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_
>.java:54)
> >          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
> >
> > I'm pretty sure that it is being called correctly from my code (which
>works
> > fine in 0.9.7), but it is failing now.
> >
> > An unrelated warning in a different application is that OJB says I
>should
> > use addLike() for using LIKE, but it
> > seems to use the right code anyway.  Is this just a deprecation issue?
>I
> > don't see why it bothers
> > to tell me this, if it can figure what to do anyway.
> >
> > Thanks,
> >
> > Dave
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
><ma...@jakarta.apache.org>
> >
> >
> >
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: problems with ojb 0.9.8

Posted by Armin Waibel <ar...@code-au-lait.de>.
Hi David,

the sequence generator implementation now only generate
id's for fields declared in the repository.
I think you got this NullPointerException, because SM get a
'null' field:

<snip SequenceManagerHelper>
public static String buildSequenceName(
PersistenceBroker brokerForClass, FieldDescriptor field)
    {
48--->!!! ClassDescriptor cldTargetClass = field.getClassDescriptor();
                String seqName = field.getSequenceName();
.....
</snip>

So check your code if the given FiledDescriptor wasn't null.

HTH

regards,
Armin

----- Original Message -----
From: "David Forslund" <dw...@lanl.gov>
To: "OJB Users List" <oj...@jakarta.apache.org>
Sent: Monday, December 30, 2002 1:33 AM
Subject: Re: problems with ojb 0.9.8


> I'm trying to upgrade from 0.9.7 to 0.9.8 and am having some problems
that
> I don't understand yet.
>
> I'm getting the warning about not finding an autoincrement attribute
for a
> class.  I'm not sure when
> I have to have an autoincrement attribute, but the primarykey for the
class
> I'm using is a varchar
> so that autoincrement doesn't seem appropriate.
>
> Subsequently, I get an null pointer exception error in the
> SequenceManagerHelper that I don't understand:
> java.lang.NullPointerException
>          at
>
org.apache.ojb.broker.util.sequence.SequenceManagerHelper.buildSequenceN
ame(SequenceManagerHelper.java:48)
>          at
>
org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl.getUniqueId(
SequenceManagerHiLoImpl.java:49)
>          at
>
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getUniqueId(Persist
enceBrokerImpl.java:2258)
>          at
>
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getUniqueId(D
elegatingPersistenceBroker.java:242)
>          at
> gov.lanl.Database.OJBDatabaseMgr.getNextSeq(OJBDatabaseMgr.java:582)
>          at
>
gov.lanl.COAS.AbstractObservationValue_.<init>(AbstractObservationValue_
.java:54)
>          at gov.lanl.COAS.Empty_.<init>(Empty_.java:31)
>
> I'm pretty sure that it is being called correctly from my code (which
works
> fine in 0.9.7), but it is failing now.
>
> An unrelated warning in a different application is that OJB says I
should
> use addLike() for using LIKE, but it
> seems to use the right code anyway.  Is this just a deprecation issue?
I
> don't see why it bothers
> to tell me this, if it can figure what to do anyway.
>
> Thanks,
>
> Dave
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
>
>