Hi Chuck, After digging and stepping into the debugger, I figured out that the problem come in the globalID generation that uses the adaptorValueClass() method of EOAttribute which in turn uses the adaptorValueType() with only support 4 types (String, Number, Data and NSTimestamp).
This part is totally broken with custom data type. My conclusion is custom data type are not supported as PK attributes. I create a work around in my DateMTA entity (used for report grouping by month, quarter, year, ...) static public DateMTA forDate(EOEditingContext ec, LocalDate date) { synchronized (GLOBAL_ID) { if (_gids == null) { NSMutableDictionary<LocalDate, EOGlobalID> gids = new NSMutableDictionary<LocalDate, EOGlobalID>(); for (DateMTA dateMTA : fetchAllDateMTAs(ec)) { gids.setObjectForKey(dateMTA.globalId(), dateMTA.date()); } _gids = gids.immutableClone(); } EOGlobalID globalID = _gids.objectForKey(date); return (DateMTA) ec.faultForGlobalID(globalID, ec); } } and when I need the relationship, I add this to the entity class: public static ERXKey<DateMTA> DATE_MTA = new ERXKey<DateMTA>("dateMta"); private DateMTA dateMta; public DateMTA dateMta() { if (dateMta == null) { dateMta = DateMTA.forDate(editingContext(), date()); } return dateMta; } It would be much nicer to simply create the relationship but for in memory stuff, this works great and stiff very efficient. Regards, Samuel > Le 26 janv. 2016 à 14:20, Chuck Hill <ch...@gevityinc.com> a écrit : > > How did you define the PK? You will need to set it up as a custom data type, > the same as if you were using it as a regular attribute. Why does it think > it is a NSTimestamp? > > Chuck > > > > > > On 2016-01-22, 2:35 PM, > "webobjects-dev-bounces+chill=gevityinc....@lists.apple.com on behalf of > Samuel Pelletier" <webobjects-dev-bounces+chill=gevityinc....@lists.apple.com > on behalf of sam...@samkar.com> wrote: > >> Hi, >> >> I would like to create use a soda LocalDate as primary key for an entity >> used for report grouping with month, quarter, year... >> >> My creates and inserts works but my fetches fail with this exception: >> Attempt to create an EOGlobalID for the entity "DateMTA" with a primary key >> component of type org.joda.time.LocalDate instead of type >> com.webobjects.foundation.NSTimestamp! >> at com.webobjects.eoaccess.EOEntity._coercePKInput(EOEntity.java:390) >> >> I dig a bit in the code and it seems to come from the adaptorValueClass() >> method in EOAttribute that think it should be a NSTimestamp instead of an >> LocalDate. >> >> I am not familial with EOAtribute and it's multiple class and types... >> >> Anyone can help me figure this out ? >> >> Samuel >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/chill%40gevityinc.com >> >> This email sent to ch...@gevityinc.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com