Re: EOF inserts PK automatically
Re: EOF inserts PK automatically
- Subject: Re: EOF inserts PK automatically
- From: Chuck Hill <email@hidden>
- Date: Fri, 5 Nov 2004 09:58:50 -0800
On Nov 5, 2004, at 1:42 AM, Sako! wrote:
Hello Pierre,
i have MS sql,
what do you mean with "Other applications you have would do best to
rely on the same sequence."?
how can i rely on the same sequence?
the real problem is, i create the object in WO add it to the EC, at
this time the Object has correct PK(hopfullely).
No. At this point the object has an internal, temporary EOGlobalID.
The PK is null.
before i call EC.SaveChanges(). another Application has already
inserted a row in the Table with the same PK. after that WO tries to
insert row with invalid PK.
this problem is also explaind in the WO documentation unfortunately
without really good solution :(
I don't know where you got that, its wrong. The real PK is generated
during save changes as part of a transaction. There is no danger of
duplication. PK numbers can be skipped but never duplicated.
In EOF we trust.
Chuck
----- Original Message -----
From: email@hidden
To: email@hidden
Sent: Friday, November 05, 2004 10:06 AM
Subject: RE: EOF inserts PK automatically
Sako!
The exact behavior depends on the database specific adaptor plug-in.
The Oracle adaptor, as many others, gets its primary keys from a
sequence. Thus no two WebObjects applications can get the same primary
key. Other applications you have would do best to rely on the same
sequence.
Pierre
-----Original Message-----
From: Sako! [mailto:email@hidden]
Sent: Friday, November 05, 2004 9:41 AM
To: Pierre Bernard
Subject: Re: EOF inserts PK automatically
thank you for answering.
i understand what you explained, but this ideal situation will work
fine if only WO has access to the DataBase.
i have problem with it.
an Example:
1. WO creates an PK.
2. another Application WRITES in the DataBase.
3. WO writes << an error happens. cos the PK is already used.
so i thought. if i use the feature from the DB. i will solve this
problem.
acording to "That said, WebObjects relies on the database for
providing the primary key it used. It just ask for it earlier than
what you are aiming for."
i made some tests. the result was something diffrent.
i can with 100% say WO doesnt relies on the DB always. WO Saves the
last PK in the applications(i suppose).
regards.
Sako
----- Original Message -----
From: email@hidden
To: email@hidden ; email@hidden
Sent: Wednesday, November 03, 2004 5:09 PM
Subject: RE: EOF inserts PK automatically
Sako
That would be aganst the very nature of WebObjects. EOF references
objects internally using a global ID which is based on the primary key
of the database row matching the object. If you let your database
create the primary key during the transaction which inserts the new
row, WebObjects would not know the generated key. Moreover with the
primary key generated only this late in the process, WebObjects would
not know the value of the foreign key to use by other rows to
reference the newly created one.
That said, WebObjects relies on the database for providing the primary
key it used. It just ask for it earlier than what you are aiming for.
Pierre
-----Original Message-----
From: webobjects-dev-bounces+pierre.bernard=email@hidden
[mailto:webobjects-dev-
bounces+pierre.bernard=email@hidden]On Behalf Of Sako!
Sent: Wednesday, November 03, 2004 4:23 PM
To: WebObjectsDev
Subject: EOF inserts PK automatically
Hello,
i create an object and insert it in the ec, and fire save changes with
this simple code
my table has {(id as PK ),(name)}
EOClassDescription classDescriptionAFDetails =
EOClassDescription.classDescriptionForEntityName("Test2");
EOGenericRecord newTest2Object = (EOGenericRecord)
classDescriptionAFDetails.createInstanceWithEditingContext(null,
null);
newTest2Object.takeValueForKey("name ", "name");
session.defaultEditingContext().insertObject(newTest2Object);
session.defaultEditingContext().saveChanges();
EOF adds the PK automatically.
i use MS-SQL server and it supports adding the PK also. this mean i
just need to add the name with sql like this
INSERT INTO test2 (name) VALUES ("my new name");
what i look for is, i would like to use the feature from the db. to do
that i have to prvent EOF to add the PK automatically.
do i have chance to do that?
thanks.
sako
**********************************************************************
This email and any files transmitted with it are intended solely for
the use of the individual or entity to whom they are addressed.
If you have received this email in error please notify the sender
of this message. (email@hidden)
This email message has been checked for the presence of computer
viruses; however this protection does not ensure this message is
virus free.
Banque centrale du Luxembourg; Tel ++352-4774-1; http://www.bcl.lu
**********************************************************************
**********************************************************************
This email and any files transmitted with it are intended solely for
the use of the individual or entity to whom they are addressed.
If you have received this email in error please notify the sender
of this message. (email@hidden)
This email message has been checked for the presence of computer
viruses; however this protection does not ensure this message is
virus free.
Banque centrale du Luxembourg; Tel ++352-4774-1; http://www.bcl.lu
**********************************************************************
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
village.net
This email sent to email@hidden
--
Practical WebObjects - a book for intermediate WebObjects developers
who want to increase their overall knowledge of WebObjects, or those
who are trying to solve specific application development problems.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden