Helo,
We have found another problem with castor 1.0M2 that did not occur in
previous versions (at least in 0.9.5). Let me explain an example:
Imagine we have two tables in a database such as those that follow:
CREATE TABLE TABLEPARENT (
IdParent NUMBER(38) NOT NULL);
ALTER TABLE TABLEPARENT ADD (
CONSTRAINT PK_TABLEPARENT PRIMARY KEY (IdParent);
CREATE TABLE TABLECHILD (
IdChild NUMBER(38) NOT NULL,
IdParent NUMBER(38) NOT NULL);
ALTER TABLE TABLECHILD ADD (
CONSTRAINT PK_TABLECHILD PRIMARY KEY (IdChild);
ALTER TABLE TABLECHILD ADD (
CONSTRAINT FK_TABLECHILD FOREIGN KEY (IdParent ) REFERENCES
TABLEPARENT (IdParent));
Where the records from "TABLECHILD" as shown above depend on the table
"TABLEPARENT" by the primary key of the parent "IdParent".
These are translated into two models where "ChildModel" and "ParentModel"
are related by a member variable of "ChildModel", let's call it "IdParent".
Therefore, "ParentModel" do not have any references of its child. The child
know who is its father by its member variable, "IdParent".
Imagine, now, that we want to delete a record "oParentModel" from
"TABLEPARENT", we must, first, delete its child from "TABLECHILD". Let's
say this parent only has one children, "oChildModel".
Therefore, in the code, we do something like this (in the order shown):
JDOManager.getDatabase().remove(oChildModel);
JDOManager.getDatabase().remove(oParentModel);
So first, castor is told to remove the child record and afterwards the
parent one. If not, the database would throw a "child record found" and
will not allow us to delete the two models.
The problem is that castor does not seem to delete the models in the order
we tell it to do it. It seems, castor deletes them in a random order
because sometimes it throws a SQLException and the next try not.
Thanks in advanced,
P.S.: Sorry, this time I have not spent time checking the code so I can
tell you exactly what it is happening, I could not find time.
CEIN, S.A.
Raúl Sanz de Acedo Pérez
Técnico Sénior - Dpto. Innovación
Empresarial
[EMAIL PROTECTED]
Polígono Mocholí - Plaza Cein,
31110 Noáin
-------------------------------------------------
If you wish to unsubscribe from this list, please
send an empty message to the following address:
[EMAIL PROTECTED]
-------------------------------------------------