Hi Castor users,
I was introduced to Castor in 2001 and I have been using Castor for 6
months and I thought that I'd share my experience with everyone that has
the time to read it.
First lets say that the approach taken fulfilled the need for a binding
technology between java objects and database tables. Therefore our use
of Castor remains in the JDO branch. The XML branch was used by a
colleague to create XML instances from legacy data files. He expressed
satisfaction with the method.
For our project the major advantage or functionality of Castor jdo is
its ability to blindly create, load, update, and remove objects. Here
the objects could be created from any reverse database engineering tool.
Is there a database reverse engineering tool in Castor?
Castor was particlarly useful for doing queries on data. We used the OQL
SQL call thru to search for objects given some quite complex queries.
And we were happy to get an object that was build on the fly so to
speak.
The difficulties encountered using Castor includes the fact that these
OQL queries require that all the elements be present in a particular
order. My experience indicates that this order is primary key first and
then the order in which the columns appear in the jdo mapping file. This
is not a hard thing to do. We used xslt on our mapping file to create
properties files containing the column list. Another method would be to
create the column list using some sort of dynamic xml processing at
runtime but we though why waste the cpu time.
We would have used much more of the Cator XML functionality if we hadn't
had the versioning datamodel described below. Bulk xml imports and
exports would have been easy with Castor XML but our datamodel is
slightly twisted. See below.
For more information on this project see these keywords AIXM XML Schema
and read the following blurb about the database.
This is a static aeronautical database used for creating air and ground
traffic control data. For those of us who travel often (ApacheCon,
OpenSourceCon, CastorCon?) it may assure you that Castor and other open
source projects are behind the scenes. Another important fact is the
structure of the database. We were unable to do classic table
relationships because this database implements the notion of data
versioning. The model was beyond our control but the point is that we
can not take advantage of Castor's ability to create hierarchies of
dependent objects.
For more about the versioning read more.
Any given data widgit can have N number of versions where each row has a
common key that groups all versions of the same data together, a primary
key, a natural key composed of one or more data columns and foreign keys
to other objects(used in the xml schema), and temporal metadata
indicating when this data was valid. In all their are 99 data widgets.
Thanks again for the great product. It is good to know Castor
concidering it is build into OpenEJB, which is build into Geronimo,
which may quite plainly be one of the most interesting open source
application servers available today.
Philip DONAGHY
P.S. I will also put this story on jroller.org blog but I thought it
would help Castor users to be here as well.
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user