Need Help on EOModel Auto update of DATE column for DirectToWeb app

View: New views
8 Messages — Rating Filter:   Alert me  

Need Help on EOModel Auto update of DATE column for DirectToWeb app

by BLS :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have a DirectToWeb application (with EOModels), where in I have a table with create_date and modify_date columns.

I need the create_date and modify_date of the table to be automatically updated, whenever the user tries to create a new record for the table or, when the user tries to edit an existing record of the table.

Any idea how to achieve this?

Any hints will be very helpful..

Thanks a lot in advance,
BLS

Re: Need Help on EOModel Auto update of DATE column for DirectToWeb app

by Pierre G :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
You can use trigger in the database
or with EOF, you can implement validateForInsert() and validateForUpdate()
in the Java class of your entity
----- Original Message -----
From: bsahu@...
Sent: Monday, November 09, 2009 9:23 AM
Subject: Need Help on EOModel Auto update of DATE column for DirectToWeb app


I have a DirectToWeb application (with EOModels), where in I have a table
with create_date and modify_date columns.

I need the create_date and modify_date of the table to be automatically
updated, whenever the user tries to create a new record for the table or,
when the user tries to edit an existing record of the table.

Any idea how to achieve this?

Any hints will be very helpful..

Thanks a lot in advance,
BLS
--
View this message in context: http://old.nabble.com/Need-Help-on-EOModel-Auto-update-of-DATE-column-for-DirectToWeb-app-tp26261738p26261738.html
Sent from the WebObjects-Dev mailing list archive at Nabble.com.

_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWeb app

by Paul A. Hoadley :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 09/11/2009, at 7:22 PM, Pierre Gilquin wrote:

You can use trigger in the database 
or with EOF, you can implement validateForInsert() and validateForUpdate()
in the Java class of your entity

You don't want to go modifying EO attributes in validateForInsert() or validateForUpdate():


Depending on the OP's specific requirements, s/he might be able to use awakeFromInsertion() or awakeFromFetch(), or, better still, ERXEnterpriseObject's willInsert() or willUpdate().  See which of those fits the specific requirements.




_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

by Pierre G :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
if the last  line is not forgotten, I did not have any problem modify an EO  :
 
editingContext().processRecentChanges();
 
Pierre
----- Original Message -----
From: paulh@...
Sent: Monday, November 09, 2009 11:05 AM
Subject: Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

On 09/11/2009, at 7:22 PM, Pierre Gilquin wrote:

You can use trigger in the database 
or with EOF, you can implement validateForInsert() and validateForUpdate()
in the Java class of your entity

You don't want to go modifying EO attributes in validateForInsert() or validateForUpdate():


Depending on the OP's specific requirements, s/he might be able to use awakeFromInsertion() or awakeFromFetch(), or, better still, ERXEnterpriseObject's willInsert() or willUpdate().  See which of those fits the specific requirements.




_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

by Chuck Hill :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Nov 9, 2009, at 3:00 AM, Pierre Gilquin wrote:

> if the last  line is not forgotten, I did not have any problem  
> modify an EO  :
>
> editingContext().processRecentChanges();


You may  not have had, or noticed, any problem so far.  But this is  
NOT safe.  This can modify EOs during saveChanges() and EOF is not  
expecting that to happen.  Both Wonder and Practical WebObjects  
provide an implementation of the correct, safe way to make such changes.


Chuck


>
> Pierre
> ----- Original Message -----
> From: Paul Hoadley
> To: webobjects-dev@...
> Sent: Monday, November 09, 2009 11:05 AM
> Subject: Re: Need Help on EOModel Auto update of DATE column for  
> DirectToWebapp
>
> On 09/11/2009, at 7:22 PM, Pierre Gilquin wrote:
>
>> You can use trigger in the database
>> or with EOF, you can implement validateForInsert() and  
>> validateForUpdate()
>> in the Java class of your entity
>
> You don't want to go modifying EO attributes in validateForInsert()  
> or validateForUpdate():
>
> http://wiki.objectstyle.org/confluence/display/WO/EOF-Using+EOF-The+EOF+Commandments
>
> Depending on the OP's specific requirements, s/he might be able to  
> use awakeFromInsertion() or awakeFromFetch(), or, better still,  
> ERXEnterpriseObject's willInsert() or willUpdate().  See which of  
> those fits the specific requirements.
>
>
> --
> Paul.
>
> w  http://logicsquad.net/
> h  http://paul.hoadley.name/
>
>
>
>
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev

--
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

by Pierre G :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
ok, I will read it again.
 
Pierre
----- Original Message -----
From: chill@...
Sent: Monday, November 09, 2009 7:40 PM
Subject: Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp


On Nov 9, 2009, at 3:00 AM, Pierre Gilquin wrote:

> if the last  line is not forgotten, I did not have any problem 
> modify an EO  :
>
> editingContext().processRecentChanges();


You may  not have had, or noticed, any problem so far.  But this is 
NOT safe.  This can modify EOs during saveChanges() and EOF is not 
expecting that to happen.  Both Wonder and Practical WebObjects 
provide an implementation of the correct, safe way to make such changes.


Chuck


>
> Pierre
> ----- Original Message -----
> From: Paul Hoadley
> To: webobjects-dev@...
> Sent: Monday, November 09, 2009 11:05 AM
> Subject: Re: Need Help on EOModel Auto update of DATE column for 
> DirectToWebapp
>
> On 09/11/2009, at 7:22 PM, Pierre Gilquin wrote:
>
>> You can use trigger in the database
>> or with EOF, you can implement validateForInsert() and 
>> validateForUpdate()
>> in the Java class of your entity
>
> You don't want to go modifying EO attributes in validateForInsert() 
> or validateForUpdate():
>
> http://wiki.objectstyle.org/confluence/display/WO/EOF-Using+EOF-The+EOF+Commandments
>
> Depending on the OP's specific requirements, s/he might be able to 
> use awakeFromInsertion() or awakeFromFetch(), or, better still, 
> ERXEnterpriseObject's willInsert() or willUpdate().  See which of 
> those fits the specific requirements.
>
>
> --
> Paul.
>
> w  http://logicsquad.net/
> h  http://paul.hoadley.name/
>
>
>
>
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev

--
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their 
overall knowledge of WebObjects or who are trying to solve specific 
problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

by BLS :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you all for quick response.
Thanks Pierre for your response specifically. That gave me a flash to do another simpler solution:

I changed the getter and setter methods of the corresponding java class to automatically update the create date if create date is null.

public NSTimestamp createDate() {
        if(storedValueForKey("createDate") == null) {
            NSTimestamp currentTime = new NSTimestamp();
            setCreateDate(currentTime);
            return currentTime;
        } else {
            return (NSTimestamp)storedValueForKey("createDate");
        }
    }


On 10-Nov-09, at 1:08 AM, Pierre Gilquin wrote:

ok, I will read it again.
 
Pierre
----- Original Message -----
From: chill@...
Sent: Monday, November 09, 2009 7:40 PM
Subject: Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp


On Nov 9, 2009, at 3:00 AM, Pierre Gilquin wrote:

> if the last  line is not forgotten, I did not have any problem  
> modify an EO  :
>
> editingContext().processRecentChanges();


You may  not have had, or noticed, any problem so far.  But this is  
NOT safe.  This can modify EOs during saveChanges() and EOF is not  
expecting that to happen.  Both Wonder and Practical WebObjects  
provide an implementation of the correct, safe way to make such changes.


Chuck


>
> Pierre
> ----- Original Message -----
> From: Paul Hoadley
> To: webobjects-dev@...
> Sent: Monday, November 09, 2009 11:05 AM
> Subject: Re: Need Help on EOModel Auto update of DATE column for  
> DirectToWebapp
>
> On 09/11/2009, at 7:22 PM, Pierre Gilquin wrote:
>
>> You can use trigger in the database
>> or with EOF, you can implement validateForInsert() and  
>> validateForUpdate()
>> in the Java class of your entity
>
> You don't want to go modifying EO attributes in validateForInsert()  
> or validateForUpdate():
>
> http://wiki.objectstyle.org/confluence/display/WO/EOF-Using+EOF-The+EOF+Commandments
>
> Depending on the OP's specific requirements, s/he might be able to  
> use awakeFromInsertion() or awakeFromFetch(), or, better still,  
> ERXEnterpriseObject's willInsert() or willUpdate().  See which of  
> those fits the specific requirements.
>
>
> -- 
> Paul.
>
> w  http://logicsquad.net/
> h  http://paul.hoadley.name/
>
>
>
>
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev
> _______________________________________________
> WebObjects-dev mailing list
> WebObjects-dev@...
> http://www.omnigroup.com/mailman/listinfo/webobjects-dev

-- 
Chuck Hill             Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their  
overall knowledge of WebObjects or who are trying to solve specific  
problems.
http://www.global-village.net/products/practical_webobjects






_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev


_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev

Re: Need Help on EOModel Auto update of DATE column for DirectToWebapp

by Mark Ritchie-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hey Bhagyalata!

On 9/Nov/2009, at 8:47 PM, Bhagyalata Sahu wrote:
Thank you all for quick response.
Thanks Pierre for your response specifically. That gave me a flash to do another simpler solution:

I changed the getter and setter methods of the corresponding java class to automatically update the create date if create date is null.
public NSTimestamp createDate() {
        if(storedValueForKey("createDate") == null) {
            NSTimestamp currentTime = new NSTimestamp();
            setCreateDate(currentTime);
            return currentTime;
        } else {
            return (NSTimestamp)storedValueForKey("createDate");
        }
    }
Yikes!  That's called a mutating accessor and it's a bad idea.
What if an administrative application wanted to use the same EOModel and EO's to examine the records which did not have a createDate set.  With this implementation, the fetch specification would could correctly find the records however by the time they were reported there would be values in the createDate field.   Just one of the many reasons that accessor methods should not modify values!

I've updated the EOF Commandments with some more details on this case:

Side note, if you are using D2W then you should really use Wonder as well!
Wonder has many enhancements for D2W!

Best!
Mark

_______________________________________________
WebObjects-dev mailing list
WebObjects-dev@...
http://www.omnigroup.com/mailman/listinfo/webobjects-dev