AdFactum ObjectMapper .NET Blog

Official blog of the AdFactum ObjectMapper .NET

New Release – ObjectMapper .NET 0.99.408.0

Posted by Gerhard Stephan on May 8th, 2006

Today I released the a new ObjectMapper Version which contains some bug fixes and one primary change – the loss of the software driven referential integrity check that the ObjectMapper .NET supports in prior versions. I think this point is worth to explain in detail.

The software driven referential integrity check has been marked as obsolete because it's a fault-prone process.
In prior versions of the ObjectMapper .NET the developer could choose a SmartPointer algorithm to ensure the referential integrity of the database. As the on-road test shows this is not a very secure alternative to check the referential integrity by a software algorithm. Why? It's because system crashes can produce an invalid state of the link counter. Furthermore it costs a lot of read and write operations to update all link counters. Last but not least it can't be used in a environment that allows multiple instances of the ObjectMapper .NET, because every instance of the ObjectMapper .NET would change the smart pointers of the other instance. I think there might be many other reasons more. That's why I set the Constructor to Obsolete. In the next version of the ObjectMapper .NET I'm going to remove the constructor completely.

The BackLink attribute can now be used with a GlobalParameter in order to specify the parent object.
The purpose of a backlink is to link data from the parent object into a child object. One problem appears if a child object is used by different parents. If you make a count on the child object you will get for instance 1 value, but if you load the child objects with a selection you will get 2 objects. Why? It's because the child is referenced by 2 parents and therefore will be loaded 2 times. That's the correct behavior, but not always the wanted behavior. That's why I added the possibility to add a GlobalParameter to the BackLink Attribute in order to specify the parent object which shall be referenced when loading the child. It's implemented like the GlobalParameter used by the VirtualLink Attribute.

Bug Fix: WriteSchema on OracleRepositoryPersister
The OracleRepositoryPersister did not evaluate the tablespace which have been stored in the repository database when writing the difference scripts. The ObjectMapper .NET always took the default tablespace 'USERS' instead of the correct one. This bug has been fixed now.

Bug Fix: Create and use new identifiers for virtual links in order to allow multiple aggregates of the same class.
The prior release of the ObjectMapper .NET had the problem that a class could only contain one aggregate to another object that has been embedded by using VirtualLinks. Imagine you have a order info object which contains a customer address and a shipping address. So you have two address objects as an aggregate within the order info object. So far so good. Now image you want to add two virtual links to the order info object which links the address data from both address aggregates into the order info object. Boom – older versions of the ObjectMapper .NET did not deliver the correct result. This bug has been fixed now.

That have been the changes in the current release.
I hope you enjoy the ObjectMapper .NET.


One Response to “New Release – ObjectMapper .NET 0.99.408.0”

  1. Carl Says:

    Hi Gerhard,
    i hope we will have a big future with ObjectMapper .NET and some (not licenced yet) PL/SQL Backend extensions.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>