mysql autoincrement pk

José Manuel Molina Pascual <[email protected]>
Newsgroups gmane.comp.java.ejb.middlegen.user
Organization Stratesys Consulting
Message-ID <[email protected]>
Hy,

I'm used middlegen to generate code from a database schema, I has
InnoDB tables into a mysql database,

In particular, I have one table with an autoincrement pk field (well,
in fact, all the tables have an autoincrement pk field), wich is
causing me some problems.

This table, has a child table (1 - 0..N Relation) well, thay work
fairly well if you create first one row int he parent table, then you
manage to get its local instance (I call them from a session bean, so I
use the local interfaces), and then insert the childs wioth this local
object in the create call.

The problem arises as, from the client app, the user can create a new
structure (a new parent with new childs) and then I need to create the
parent (this step its ok) an then get this newly created parent and
insert the childs, this second step is what is causing me problems.

First, the aprent create method returns me null, The bean returns a
PKFactura (the table is called Factura) but the method in the localhome
interface (generated with XDoclet using the tgas generated with
middlegen) returns a FacturaLocalHome object, I thinks its ok as Jbosss
deploys it ok and I don't know what the specification says about this,
anyway, as I said the create method returns null, nor the PK nor the
newly created entity.

So, here arises the problem, I have no way to get this entity without
user intervention, as no other field is unique, I dont know the pk the
mysql engine asigned the new parent row.

The only way i think I have to get the pk it with the SELECT
LAST_INSERTED_ID() SQL sentence, I havent tested yet but I'm not sure
it will work as as far as I know:

- It returns the last inserted autoincrement value on a connection
base, so if Jboss doesn't employ the same connection to insert the
parents and the childs, i wont do, or if the same connection is used by
jboss to insert one parent, then another parent , then the childs from
the first parent......... it won't do.

In fact I'm not sure about the behaviour of jboss at this point, th
parent and the childs, are inserted in the same method of the wrapper
session bean, maybe, its done into one transaction, and so inside the
same connection.

Well, does anyone knows if the LAST_INSERTED_ID() aproach will
do????????

--

firma

José Manuel Molina
Pascual

[email protected]

Stratesys Consulting

C/ Juan de Mena, 6

Madrid 28014

Tel (+34) 91 360 49 60
logo_stratesys.jpg (image/jpeg, 14.7 KB) - not displayed
smime.p7s (application/x-pkcs7-signature, 3.2 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.