Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2007

Tip: Looking for answers? Try searching our database.

hibernate: automatically generate timestamps

Thread view: 
chrislewis - 22 Oct 2007 13:12 GMT
Hello,

I am trying to have certain values created/updated when a new record
is created or an existing one is updated. I'm using the following
field (using hibernate annotations as demonstrated in Hibernate In
Action):

    @Column(updatable = false, insertable = false)
    @org.hibernate.annotations.Generated(
        org.hibernate.annotations.GenerationTime.INSERT
    )
    private Date created;

Its simple; all I want is the 'created' field to be provided by
hibernate as a timestamp for when it was created. Similarly, I want a
timestamp field (named 'modified') to be updated whenever the record
is changed. For that I have:

    @Column(updatable = false, insertable = false)
    @org.hibernate.annotations.Generated(
        org.hibernate.annotations.GenerationTime.ALWAYS
    )
    private Date modified;

Unfortunately neither of these work. From the book as well as other
documentation (the website), I can't see that I'm doing anything
incorrectly, but the behavior I'm getting is that both of these fields
are always null. Can anyone see what I've done wrong (or not doing)?

Sincerely,
Chris
Daniel Pitts - 22 Oct 2007 15:50 GMT
> Hello,
>
[quoted text clipped - 8 lines]
>     )
>     private Date created;
Just a guess here, have you tried using insertable = true? I don't know
Hibernate that well though.  The other (less preferred) alternative is
to have a getter that checks if created==null then return new Date(),
else return created. Then have hibernate persist using the getter, not
the field.

Good luck,
Daniel.
Signature

Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>

chrislewis - 22 Oct 2007 16:21 GMT
If I use insertable=true, hibernate throws an exception saying:

"Cannot have @Generated property and insertable columns: ..." - so it
appears that you must use insertable=false with @Generated, and the
book (Hibernate In Action) states this as well. However it doesn't
work as the book says it should, unless I'm just misunderstanding it.
I know hibernate can do this - its a simple operation - I just can't
figure out how...

On Oct 22, 4:50 pm, Daniel Pitts
<newsgroup.spamfil...@virtualinfinity.net> wrote:
> > Hello,
>
[quoted text clipped - 19 lines]
> --
> Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
Charles - 22 Oct 2007 16:22 GMT
> Hello,
>
[quoted text clipped - 27 lines]
> Sincerely,
> Chris

Hi,

Can you give an example of the time value being created?

Complete prototype of the time structure would be helpful.
chrislewis - 22 Oct 2007 17:40 GMT
Its not, thats the problem. The Java type is java.util.Date, and
hibernate is translating this to a SQL DATETIME column, which is
perfect. The schema comes out fine, but anytime I create a new object
with a 'created' field annotated as aforementioned, it always comes up
null in the database. The expected behavior here is that hibernate
should see it needs to initialize that field transparently on insert.

I'm using MySQL 5x, for which the DATETIME format is 'YYYY-MM-DD
HH:MM:SS'.

Thanks for any input!

> > Hello,
>
[quoted text clipped - 33 lines]
>
> Complete prototype of the time structure would be helpful.
JDurbin - 29 Oct 2007 05:40 GMT
> Hello,
>
[quoted text clipped - 27 lines]
> Sincerely,
> Chris

Chris.  Have you found out what the issue is with @Generated using a
create/modify timestamp?  I am experiencing the exact-same thing you
are.  All the examples and docs make it seem so cut-'n-dry... thus, I
cannot figure out what is going wrong.

Thanks!

--Josh
rwinch@gmail.com - 01 Nov 2007 16:54 GMT
> > Hello,
>
[quoted text clipped - 36 lines]
>
> --Josh

I am also having this problem and would be interested to hear an
answer if anyone has got it
Jim Garrison - 07 Nov 2007 05:26 GMT
>>> Hello,
>>> I am trying to have certain values created/updated when a new record
[quoted text clipped - 32 lines]
> I am also having this problem and would be interested to hear an
> answer if anyone has got it

I filed a bug on this in June, but have received zero response
from anybody at Hibernate.  See
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2511

Maybe if you would visit the bug and add your examples it might
get a little visibility.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.