I should have also said that I still get the error: Error: java.lang.IllegalStateException: Adaptor com.webobjects.jdbcadaptor.JDBCAdaptor@7f1633fd failed to provide new primary keys for entity 'Brief'
--- On Fri, 4/6/12, Theodore Petrosky <[email protected]> wrote: > From: Theodore Petrosky <[email protected]> > Subject: Re: D2W creating a new object? > To: "David LeBer" <[email protected]> > Cc: "David Holt" <[email protected]>, "[email protected]" > <[email protected]> > Date: Friday, April 6, 2012, 11:11 AM > My head hurts but > > Here is my EO's init > > public void init(EOEditingContext ec) { > super.init(ec); > > NSLog.out.appendln("*** init of the > EO Brief ****"); > setCreationDate(new NSTimestamp()); > > Person thePerson = (Person) > ERXThreadStorage.valueForKey("currentUser"); > > NSLog.out.appendln("*** thePerson > = ****" + thePerson); > > Person localPerson = > thePerson.localInstanceIn(ec); > > setPersonRelationship(localPerson); > > } > > I threw in many NSLogs to see what was going on and I see in > the Console: > > Page: er.modern.look.pages.ERMODQueryEntitiesPage - > Configuration: null - *** thePerson = > ****<com.as.Model.Person pk:"1"> > > which is what I expect. so the Person is indeed entering my > init and I needed a localInstance in the EC or it complains > that I am crossing ECs. I know I am not the brightest but I > am confused. > > Ted > > --- On Fri, 4/6/12, David LeBer <[email protected]> > wrote: > > > From: David LeBer <[email protected]> > > Subject: Re: D2W creating a new object? > > To: "Theodore Petrosky" <[email protected]> > > Cc: "David Holt" <[email protected]>, > "[email protected]" > <[email protected]> > > Date: Friday, April 6, 2012, 10:48 AM > > Um, it looks like David got a little > > confused. > > > > You won't (and shouldn't) have access to the session in > your > > EO. That is why you need to use ERXThreadStorage. > > > > in Session awake and the setter for user, push it into > > ERXThreadStorage. i.e: > > > > ERXThreadStorage.takeValueForKey(user(), > > "currentUser"); > > > > In EO init: > > > > User user = > > ERXThreadStorage.valueForKey("currentUser"); > > if (user != null) { > > User localUser = > > user.localInstanceIn(ec); > > // etc > > } > > > > -- > > David LeBer > > Codeferous Software > > > > On 2012-04-06, at 10:22 AM, Theodore Petrosky wrote: > > > > > I tried that and I get an error that it doesn't > know > > what session() is. > > > > > > The method session() is undefined for the type > Brief > > > > > > I am thinking, my EOs are in a framework. > > > > > > How can I refer to the session if the EO doesn't > know > > anything about the session? > > > > > > Ted > > > > > > > > > > > > --- On Fri, 4/6/12, David Holt <[email protected]> > > wrote: > > > > > >> From: David Holt <[email protected]> > > >> Subject: Re: D2W creating a new object? > > >> To: "Theodore Petrosky" <[email protected]> > > >> Cc: "[email protected]" > > <[email protected]> > > >> Date: Friday, April 6, 2012, 9:41 AM > > >> Check the code for adding a person to > > >> a Brief further down in my previous email. If > you > > do it in > > >> the EO class, you shouldn't have the problem. > > >> > > >> Sent from my iPad > > >> > > >> On 2012-04-06, at 4:31 AM, Theodore Petrosky > <[email protected]> > > >> wrote: > > >> > > >>> David, > > >>> > > >>> I tried this method and still the same > issue. > > >>> > > >>> There is a relationship with a person > (user). > > Without a > > >> user added, I get the normal error that I need > a > > user: > > >>> > > >>> Could not save your changes: A Brief must > have > > a > > >> Person. > > >>> > > >>> I added: > > >>> > > >>> Person thePerson = > > session().user().localInstanceIn( > > >> ((D2WPage) > nextPage).object().editingContext()); > > >>> ((D2WComponent) > > nextPage).object().takeValueForKey( > > >> thePerson, "person"); > > >>> > > >>> Thats when I get the infamous: > > >>> > > >>> Error: > > >> java.lang.IllegalStateException: > > Adaptor > > >> > com.webobjects.jdbcadaptor.JDBCAdaptor@3cb088f8 > > failed to > > >> provide new primary keys for entity 'Brief' > > >>> Reason: Adaptor > > >> > com.webobjects.jdbcadaptor.JDBCAdaptor@3cb088f8 > > failed to > > >> provide new primary keys for entity 'Brief' > > >>> > > >>> If it didn't like the person entity or > the > > >> editingContext, I assume I would get an error > > complaining > > >> about that. > > >>> > > >>> This is D2W land and with all the magic > going > > on, I > > >> think I am out of Fairy dust. > > >>> > > >>> Ted > > >>> > > >>> > > >>> > > >>> > > >>> --- On Thu, 4/5/12, David Holt <[email protected]> > > >> wrote: > > >>> > > >>> | I use this method: > > >>> | > > >>> | | public WOComponent > createPersonAction() { > > >>> | | return > > >> newObjectForEntityName(PERSON); > > >>> | | } > > >>> | > > >>> | | public WOComponent > > >> newObjectForEntityName(String entityName) { > > >>> | | WOComponent nextPage = null; > > >>> | | try { > > >>> | | EditPageInterface epi > > = > > >> > > > D2W.factory().editPageForNewObjectWithEntityNamed(entityName, > > >> session()); > > >>> | | > > >> epi.setNextPage(session().context().page()); > > >>> | | nextPage = > > (WOComponent) epi; > > >>> | | } > > >>> | | catch > > (IllegalArgumentException e) { > > >>> | | ErrorPageInterface epf > > = > > >> D2W.factory().errorPage(session()); > > >>> | | > > epf.setMessage(e.toString()); > > >>> | | > > >> epf.setNextPage(session().context().page()); > > >>> | | nextPage = > > (WOComponent) epf; > > >>> | | } > > >>> | | return nextPage; > > >>> | | } > > >>> | > > >>> | > > >>> | On 2012-04-05, at 10:53 AM, Theodore > Petrosky > > wrote: > > >>> | > > >>> | I am creating a new 'Brief' object in my > D2W > > app like > > >> this: > > >>> | > > >>> | public EditPageInterface > createBriefAction() > > { > > >>> | > > >>> | EditPageInterface > > component = > > >> > > > D2W.factory().editPageForNewObjectWithConfigurationNamed("CreateBrief", > > >> session()); > > >>> | > > >> > > component.setNextPage(session().context().page()); > > >>> | > > >>> | if(component > > instanceof > > >> D2WPage) { > > >>> | D2WPage > > page = > > >> (D2WPage)component; > > >>> | > > >> > > page.d2wContext().takeValueForKey("Brief.CreateBrief", > > >> "navigationState"); > > >>> | > > >>> | This could be a rule: > > >>> | 50 : pageConfiguration = 'CreateBrief' > => > > >> navigationState = "Brief.CreateBrief" > > >> [com.webobjects.directtoweb.Assignment] > > >>> | > > >>> | > > >> NSLog.out.appendln( ((D2WPage) > > >> component).object().allPropertyKeys()); > > >>> | > > > > >>> | Person > > >> thePerson = > > session().user().localInstanceIn(((D2WPage) > > >> component).object().editingContext()); > > >>> | > > >>> | > > ((D2WComponent) > > >> component).object().takeValueForKey( > thePerson, > > "person"); > > >>> | > > ((D2WComponent) > > >> component).object().takeValueForKey( (new > > NSTimestamp()), > > >> "creationDate");// (new NSTimestamp()); > > >>> | > > >>> | This code should be in your Brief eo > init() > > method. > > >> Something like: > > >>> | > > >>> | | public void init(EOEditingContext > ec) > > { > > >>> | | super.init(ec); > > >>> | | Person thePerson = > > >> session().user().localInstanceIn(ec); > > >>> | | > > setPersonRelationship(thePerson); > > >>> | | setCreationDate(new > > NSTimestamp()); > > >>> | | } > > >>> | > > >>> | > > > > >>> | | } > > >>> | | return component; > > >>> | } > > >>> | > > >>> | When I click the save button I am > getting: > > >>> | > > >>> | > > >>> | IllegalStateException: Adaptor > > >> > com.webobjects.jdbcadaptor.JDBCAdaptor@43c8308 > > failed to > > >> provide new primary keys for entity 'Brief' > > >>> | > > >>> | > > >>> | Am I supposed to do something more > here? > > >>> | > > >>> | Ted public WOComponent > createPersonAction() > > { > > >>> | | return > > >> newObjectForEntityName(PERSON); > > >>> | | } > > >>> | > > >>> | | public WOComponent > > >> newObjectForEntityName(String entityName) { > > >>> | | WOComponent nextPage = null; > > >>> | | try { > > >>> | | EditPageInterface epi > > = > > >> > > > D2W.factory().editPageForNewObjectWithEntityNamed(entityName, > > >> session()); > > >>> | | > > >> epi.setNextPage(session().context().page()); > > >>> | | nextPage = > > (WOComponent) epi; > > >>> | | } > > >>> | | catch > > (IllegalArgumentException e) { > > >>> | | ErrorPageInterface epf > > = > > >> D2W.factory().errorPage(session()); > > >>> | | > > epf.setMessage(e.toString()); > > >>> | | > > >> epf.setNextPage(session().context().page()); > > >>> | | nextPage = > > (WOComponent) epf; > > >>> | | } > > >>> | | return nextPage; > > >>> | | } > > >>> | > > >>> | > > >>> | On 2012-04-05, at 10:53 AM, Theodore > Petrosky > > wrote: > > >>> | > > >>> | I am creating a new 'Brief' object in my > D2W > > app like > > >> this: > > >>> | > > >>> | public EditPageInterface > createBriefAction() > > { > > >>> | > > >>> | EditPageInterface > > component = > > >> > > > D2W.factory().editPageForNewObjectWithConfigurationNamed("CreateBrief", > > >> session()); > > >>> | > > >> > > component.setNextPage(session().context().page()); > > >>> | > > >>> | if(component > > instanceof > > >> D2WPage) { > > >>> | D2WPage > > page = > > >> (D2WPage)component; > > >>> | > > >> > > page.d2wContext().takeValueForKey("Brief.CreateBrief", > > >> "navigationState"); > > >>> | > > >>> | This could be a rule: > > >>> | 50 : pageConfiguration = 'CreateBrief' > => > > >> navigationState = "Brief.CreateBrief" > > >> [com.webobjects.directtoweb.Assignment] > > >>> | > > >>> | > > >> NSLog.out.appendln( ((D2WPage) > > >> component).object().allPropertyKeys()); > > >>> | > > > > >>> | Person > > >> thePerson = > > session().user().localInstanceIn(((D2WPage) > > >> component).object().editingContext()); > > >>> | > > >>> | > > ((D2WComponent) > > >> component).object().takeValueForKey( > thePerson, > > "person"); > > >>> | > > ((D2WComponent) > > >> component).object().takeValueForKey( (new > > NSTimestamp()), > > >> "creationDate");// (new NSTimestamp()); > > >>> | > > >>> | This code should be in your Brief eo > init() > > method. > > >> Something like: > > >>> | > > >>> | | public void init(EOEditingContext > ec) > > { > > >>> | | super.init(ec); > > >>> | | Person thePerson = > > >> session().user().localInstanceIn(ec); > > >>> | | > > setPersonRelationship(thePerson); > > >>> | | setCreationDate(new > > NSTimestamp()); > > >>> | | } > > >>> | > > >>> | > > > > >>> | | } > > >>> | | return component; > > >>> | } > > >>> | > > >>> | When I click the save button I am > getting: > > >>> | > > >>> | > > >>> | IllegalStateException: Adaptor > > >> > com.webobjects.jdbcadaptor.JDBCAdaptor@43c8308 > > failed to > > >> provide new primary keys for entity 'Brief' > > >>> | > > >>> | > > >>> | Am I supposed to do something more > here? > > >>> | > > >>> | Ted > > >>> > > >> > > > > > > _______________________________________________ > > > Do not post admin requests to the list. They will > be > > ignored. > > > Webobjects-dev mailing list ([email protected]) > > > Help/Unsubscribe/Update your Subscription: > > > https://lists.apple.com/mailman/options/webobjects-dev/dleber_wodev%40codeferous.com > > > > > > This email sent to [email protected] > > > > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
