Take a look at the key generator that comes with Exolab's Castor
(open-source). http://castor.exolab.org/key-generator.html

You probably want something like their HIGH/LOW generator. I haven't used it
but I use a similiar technique that I wrote myself. I like their
implementation better because they let you use different key gen techniques
that you can specify in the config file without changing code. They offer a
max+1 option which you should stay away from b/c I don't see how that could
guarantee uniqueness.

The castor high/low generator uses a database but it grabs a range of values
with each db hit so you don't hit the db everytime.

Hal

> -----Original Message-----
> From: Ralph Jensen [mailto:[EMAIL PROTECTED]]
> Sent: Friday, May 04, 2001 7:27 AM
> To: [EMAIL PROTECTED]
> Subject: Re: [JBoss-user] EJB question
>
>
> Thanks. But that is actually much more than I want. I only
> need a unique
> INT for primary keys.
>
> For the moment I will try this:
>
> In the sql-script:
>
> create table uniqueInteger(
>     pk INTEGER constraint pk_unique primary key,
>     uniqueID INTEGER
> );
>
> insert into uniqueInteger VALUES( 1, 1 );
>
>
> Then in the bean:
> SELECT uniqueID from uniqeInteger;
>
> save uniqueID in variable ( let's call it 'uniqueVar' )
>
> then:
>
> UPDATE uniqueInteger SET uniqueID = uniqueVar+1 WHERE pk = 1;
>
>
> I think that's basically Vinay's suggestion. Does that look
> reasonable?
> That's a lot of database access to get a unique primary key,
> just to be
> able to return it from ejbCreate() - especially in light of
> the fact, that
> databases do it automatically, if the table is created
> accordingly. Isn't
> this kind of thing done regularly?
>
>
> I know this has nothing to do with jBoss. Thank you.  :-)
>
> Ralph
>
> ----- Original Message -----
> From: Jim Downing <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, May 04, 2001 5:47 PM
> Subject: Re: [JBoss-user] EJB question
>
>
> > Check out www.activescript.co.uk for a non-free ($99) component to
> generate
> > unique ids. The author has also posted the pattern on
> theserverside.com,
> so
> > you have something to work to if you want to implement it yourself.
> >
> > jim
> >
> > ----- Original Message -----
> > From: "Ralph Jensen" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, May 04, 2001 10:25 AM
> > Subject: Re: [JBoss-user] EJB question
> >
> >
> > > The portability would be there in terms of data access.
> How to tell the
> > > database to autoincrement when I create a table is probably always
> > database
> > > specific. Or not?
> > >
> > > I'm not good at SQL. So how would your suggestion look in
> code? What
> would
> > > the key generator bean look like? Off which table would it work?
> > >
> > > Ralph
> > >
> > > ----- Original Message -----
> > > From: Vinay Menon <[EMAIL PROTECTED]>
> > > To: JBOSS <[EMAIL PROTECTED]>
> > > Sent: Friday, May 04, 2001 4:29 PM
> > > Subject: Re: [JBoss-user] EJB question
> > >
> > >
> > > Why don't you just use a primary key generator bean to
> encapsulate the
> key
> > > genaration? The ejbCreate can then work off that ejb and
> assign the
> > primary
> > > key field to the primary key generated field? so your
> autoincrement
> > > essentially will not be on the same table as the ejb but
> a different
> one
> > > and the primary key generator will work off that table.
> [Also makes
> sure
> > > that you have complete protability in terms of the
> database server!]
> > >
> > > Vinay
> > >
> > >
> > >
> > > ----- Original Message -----
> > > From: Ralph Jensen
> > > Sent: Friday, May 04, 2001 8:52 AM
> > > To: [EMAIL PROTECTED]
> > > Subject: [JBoss-user] EJB question
> > >
> > >
> > > I asked this question elsewhere, but didn't get an answer. So:
> > >
> > > An entity bean's ejbCreate(...) method MUST return the
> primary key.
> That
> > is
> > > not a problem, if I specify the primary key myself and
> pass it to the
> > > create(...) method.
> > >
> > > But I want to let the database assign the primary key by
> creating a
> table
> > > with an AUTOINCREMENT default for the primary key column,
> like in this
> > > example using Cloudscape (part of SUN's J2EE v1.3):
> > >
> > > create table myTable(
> > >    id INT DEFAULT AUTOINCREMENT CONSTRAINT pk_id PRIMARY KEY,
> > >    someString VARCHAR(6),
> > >    etc.
> > > );
> > >
> > > Then I can use INSERT like this:
> > >    INSERT INTO mytable ( someString ) VALUES ( 'Hello' );
> > >
> > > The database then assigns a unique value to the id column
> of that new
> > > record.
> > >
> > > If I do this in the ejbCreate(...) method of my bean my
> problem is: How
> do
> > > I know that value in order to return it? Is that possible?
> > >
> > > Thanks
> > >
> > > Ralph Jensen
> > >
> > >
> > > _______________________________________________
> > > JBoss-user mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.sourceforge.net/lists/listinfo/jboss-user<br
> > clear=all><hr>Get
> > > your FREE download of MSN Explorer at <a
> > > href="http://explorer.msn.com";>http://explorer.msn.com</a><br></p>
> > >
> > >
> > >
> > > _______________________________________________
> > > JBoss-user mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.sourceforge.net/lists/listinfo/jboss-user
> > >
> > >
> >
> >
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/jboss-user
>
>
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user
>

_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to