Nicolai P Guba wrote:

> Simple question (I hope):
> 
> If I'd like to use CMP for a project.  mySQL supports auto-generating
> the primary key for an inserted row (AUTO_INCREMENT).  Is this feature
> supported by jboss?  
> 
> If not, what strategy would you recommend for handling primary keys
> (never done it any other way but to rely upon the database to generate
> the value).

Ah! I think I may have tried answering this, but had problems with 
outbound mail from work.

auto_increment is not supported by JBoss at this time - there are way 
too many different syntaxes, and in some databases it isn't possible for 
the container to get the key value back, which is a Bad Thing.

I would reccommend that you use a database sequence facility, if 
available (I'm not a mySQL user). You can lookup your datasource and 
make your call to get the key value just as you would in a BMP bean 
(don't do the insert!, just get the key value and assign it to your key 
field and return it)

You might want to take a further step and put the call to the sequence 
into a stateless session bean's method and mark that method as 
RequiresNew transaction. This way you'll release any locks on the 
sequence quickly (though you might have unused numbers in your PK - if 
that's a problem you're probably doing something unwise)

If mySQL doesn't have standalone sequences, you can construct a table 
with a key-name column and a key-value column, then get the values out 
of that by calling another bean with RequiresNew transactions. The 
RequiresNew is very important here if you expect to require any 
conncurrent inserts.

-danch





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

Reply via email to