SQL scripts for database schema are available in sample application lt.andrejusb.utils package under Model project.
Many-to-many mapping in Oracle TopLink is enabled by adding attribute with ValueHolderInterface type and corresponding accessors to the one of two classes involved into relationship. In developed sample I have added ValueHolderInterface type attribute - blogs, into Reader class. When accessors are created, it's time to enable many-to-many mapping using Oracle TopLink wizard in JDeveloper. To do this expand descriptor for Reader and double-click blogs element, this element is unmapped. When wizard dialog will be opened, set values for Reference Descriptor and Relation Table. Also, select - Private Owned and choose source and target references. General tab in mapping wizard should look like this:
If many-to-many will be successfully configured, JDeveloper will show appropriate icon for blogs attribue:
So, mapping is enabled, now we can test it. I have developed JUnit test suite, where insert and select is performed. Many-to-many test method code:
JUnit shows green light - there is no errors:
2 comments:
Hi Andrejus,
this is an excellent example of managing many-to-many realtionships using toplink. I just have one comment:
Wouldn't it be a good idea to also show how to map between existing relational objects (i.e. in the sample you create two readers, one blog, then create them all - caouldn't you also show if the objects already existed with no mapping, how you would create the mapping).
Hi Tammar,
Thanks for interesting suggestion. Just to clarify - your idea is to load already existent data from DB and map it with TopLink?
Thanks,
Andrejus
Post a Comment