Re: D2W creating a new object?
Re: D2W creating a new object?
- Subject: Re: D2W creating a new object?
- From: Theodore Petrosky <email@hidden>
- Date: Fri, 06 Apr 2012 04:31:05 -0700 (PDT)
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@hidden> 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@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden