Forums Register Login

Relationships in DTO need foreign keys to allow null?

+Pie Number of slices to send: Send
Hi,

we have an database design problem on mySQL using JBoss. We are using CMP, Autoincrement and InnoDB relationships. The Problem of our design qzestion is the following:
As we use EJB as abstaction layer and tranfer data from client to server by DTO, we have a "dirty flag" that marks our DTO as modified by the client. Then our serverside logic has to create/modify these entities. No problems until here. But when we have related data, it is impossible to create the relationship witout getting the database table id becaouse of the foreign constraint. Threrfore we allowed to insert data with foreign key null which is quite not very nice! Is there any possibility or JBoss mechanism to tell the container to create constrained data objects in one operation including the correct foreign references. So we would not have to do it unsecure in two steps (the foreign key = null way without DB savety or access to the DB layer since object abstaction is not any more given in a elegant form).

Thanks for any reply,
Dennis
+Pie Number of slices to send: Send
If I understand your problem correctly... then you can use the <insert-after-ejb-post-create> configuration feature (JBoss 3.2.2 and above) and set the non-null foreign keys in ejbPostCreate().

-Ade Barkah
+Pie Number of slices to send: Send
I think that what Ade said would be the solution for most major databases,
but as fair as i know, mysql doesn't support the insert-after-ejb-post-create feature.

You can try though, if you make it work, please let me know.
Surfs up space ponies, I'm making gravy without this lumpy, tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com


reply
reply
This thread has been viewed 906 times.
Similar Threads
Customizing EntityManager injection for multi-tenancy
Hibernate and database physical design
Beginner Problem: son & parent
Struts Design Question?
EJB 2.0 and DTOs?
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 09:56:56.