Question

I am using Hibernate for ORM mapping. One of the tables has a column of type "datetime". The column in question needs to be updated with "current-time" (time of data insertion). I am aware that I can use the date() function as the default value. I would rather prefer setting the timestamp when I set other attributes of the object.

Question 1) What is the equivalent of SQL date() function in Java?

Was it helpful?

Solution

The equivalent of SQL date() in java is simply new Date(), e.g.:

myEntity.setDateField(new Date());

will set dateField to the current date and time.

OTHER TIPS

With mysql you can set an on update change : http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html

CREATE TABLE t1 (
  ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

The attribut will be updated with the current timestamp of the DB.

(you are lucky because it doesn't work with oracle ... (and I am with oracle ...) )

I am trying in my code:

myEntity.setdDateCreated(new Date());

In hibernate mapping ->

property name="dateCreated" column="date_created" type="timestamp"

But in mysql it is saving as '0000-00-00 00:00:00'

Any guess why this is happening?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top