• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: deleteSelection sets relationship null rather than deleting
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: deleteSelection sets relationship null rather than deleting


  • Subject: Re: deleteSelection sets relationship null rather than deleting
  • From: Ian Joyner <email@hidden>
  • Date: Wed, 5 Oct 2005 16:16:18 +1000

On 05/10/2005, at 10:42 AM, LD wrote:

Hi Ian,

On 04/10/2005, at 4:11 PM, Ian Joyner wrote:


I have a reflexive many-to-many contacts relationship modelled, as you would expect through a join table. The entity is defined as follows:

attributes:

primary_key not null
relationship: string
contact_key not null
owner_key not null

relationships:
contact: contact_key -> Person.primary_key (optional) on delete, nullify
owner: owner_key -> Person.primary_key    (optional) on delete, nullify


If your relationships are optional then the corresponding keys (contact_key, owner_key) should also be optional rather than 'not null'. That'd be a start in getting it right...

Yes setting the keys to may be null removes the error, but only sets the key to null – it does not delete the record. Anyway, since this is a join record, it only makes sense to make the relationships  mandatory, since the other two parties must exist and be referred to for this record to make any sense.

However, I have just found that I have the same problem with telephones, which is simpler and does not involve a join record since it is a one-to-many relationship and the phones don't bother with the owner relationship on the owner_key. Thus I have:

PERSON

attributes
primary_key not null

relationships

telephones: primary_key ->> Telephone.owner_key (optional), on delete cascade, owns destination

TELEPHONE

attributes
primary_key not null
owner_key not null

relationships

none

So the problem seems to be independent of how the relationships are set up and the owner of the telephone is indeed mandatory, so the key is not null.

Now I get:

[2005-10-05 15:45:25 EST] <WorkerThread6> com.webobjects.eoaccess.EOGeneralAdaptorException: EvaluateExpression failed: <com.webobjects.jdbcadaptor.OpenBasePlugIn$OpenBaseExpression: "UPDATE TELEPHONE SET OWNER_KEY = NULL WHERE (PRIMARY_KEY = ? AND LOCATION_KEY is NULL AND NUMBER = ? AND KIND_KEY = ? AND TYPE_KEY = ? AND AREA_CODE = ? AND COUNTRY_CODE = ? AND OWNER_KEY = ? AND OWNER_TYPE = ?)" withBindings: 1:528(primary_key), 2:"447567"(number), 3:16(kind_key), 4:18(type_key), 5:"345"(area_code), 6:"61"(country_code), 7:308(owner_key), 8:"P"(owner_type)>:
    Next exception:SQL State:42000 -- error code: 0 -- msg: ERROR - Value can not be NULL for column 'OWNER_KEY'
SQL: UPDATE TELEPHONE SET OWNER_KEY = NULL WHERE (PRIMARY_KEY = 528 AND LOCATION_KEY is NULL AND NUMBER = '447567' AND KIND_KEY = 16 AND TYPE_KEY = 18 AND AREA_CODE = '345' AND COUNTRY_CODE = '61' AND OWNER_KEY = 308 AND OWNER_TYPE = 'P')

instead of

DELETE TELEPHONE WHERE ........

Any ideas appreciated

Ian



 _______________________________________________
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

  • Follow-Ups:
    • Re: deleteSelection sets relationship null rather than deleting
      • From: Chuck Hill <email@hidden>
    • Re: deleteSelection sets relationship null rather than deleting
      • From: Arturo Perez <email@hidden>
References: 
 >deleteSelection sets relationship null rather than deleting (From: Ian Joyner <email@hidden>)
 >Re: deleteSelection sets relationship null rather than deleting (From: LD <email@hidden>)

  • Prev by Date: Re: Matrixed Display using WORep - looking for better idea.
  • Next by Date: NSStringReference
  • Previous by thread: Re: deleteSelection sets relationship null rather than deleting
  • Next by thread: Re: deleteSelection sets relationship null rather than deleting
  • Index(es):
    • Date
    • Thread