[hibernate-issues] [Hibernate-JIRA] Created: (HHH-6873) java.util.Date is fetched as java.sql.Timestamp from database which causes custom equal() method to fail

Martin Burger (JIRA) noreply at atlassian.com
Fri Dec 2 05:37:20 EST 2011


java.util.Date is fetched as java.sql.Timestamp from database which causes custom equal() method to fail
--------------------------------------------------------------------------------------------------------

                 Key: HHH-6873
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6873
             Project: Hibernate Core
          Issue Type: Bug
    Affects Versions: 3.6.8
            Reporter: Martin Burger
         Attachments: SimpleState.java

I have class SimpleState (in my actual application, that state class is more complex) that represents a state. A state consists of an Integer value (SimpleState.state) and a java.util.Date instance (SimpleState.created); the latter tells when the state was created.

Unfortunately, after Hibernate has fetched a persistent instance of SimpleState from the database, SimpleState.created refers to an instance of java.sql.Timestamp instead of java.util.Date as expected. This causes SimpleState's equals() method to fail in the following situation:

1. Persist SimpleState state with Hibernate in session #1.
2. Fetch state as state* from db via session #2 (thus, new session which is different from session #1).
3. Check for equality by calling state.equals(state*).

I would expect that state.equals(state*) holds, but it does not (output as printed by SimpleState.equals()):

class java.util.Date != class java.sql.Timestamp
Fri Dec 02 11:11:43 CET 2011 != 2011-12-02 11:11:43.0
1322820703319 != 1322820703000

Some people recommend to use Joda Time or to use a custom type / converter as workaround. However, I would prefer to keep my model totally independent from any constrain that would be implied by some persistence framework. Otherwise, I would have to keep all possible persistence frameworks (and all their respective peculiarities) in mind whenever I would create a model.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list