Jak zmapować postgresql „znacznik czasu ze strefą czasową” w jednostce JPA 2

Mam aplikację JPA 2 (z Hibernate 3.6 jako implementacją JPA), która używa Postgresql (ze sterownikiem JDBC 9.0-801.jdbc3).

Mam problem z mapowaniem pól „datownik ze strefą czasową” na moje jednostki JPA.

Oto przykład:

CREATE TABLE theme
(
  id serial NOT NULL,
  # Fields that are not material to the question have been edited out
  run_from timestamp with time zone NOT NULL,
  run_to timestamp with time zone NOT NULL,
  CONSTRAINT theme_pkey PRIMARY KEY (id ),
  CONSTRAINT theme_name_key UNIQUE (name )
)

Próbowałem mapować w następujący sposób:

@Entity
@Table(schema = "content", name = "theme")
public class Theme extends AbstractBaseEntity {
    private static final long serialVersionUID = 1L;

    @Column(name = "run_from")
    @NotNull
    @Temporal(TemporalType.TIMESTAMP)
    private Date runFrom;

    @Column(name = "run_to")
    @NotNull
    @Temporal(TemporalType.TIMESTAMP)
    private Date runTo;

    /* The rest of the entity has been edited out */

Ciągle otrzymuję wyjątek z następującą podstawową przyczyną:Caused by: org.hibernate.HibernateException: Wrong column type in public.backend_themetopic for column created. Found: timestamptz, expected: date

Co próbowałem

wymianajava.util.Calendar zjava.util.Date - nie robiło różnicyza pomocąjava.sql.Timestamp - skarżył się, że nie mogę zastosować@Temporal adnotacja do aTimestampza pomocąorg.joda.time.DateTime ze zwyczajem@Type adnotacja (@Type(type="org.joda.time.contrib.hibernate.PersistentDateTimeTZ") ) też nie działa

Ograniczenia

Ta aplikacja współdziała z „starszym systemem” - więc zmiana typów pól daty nie jest dobrym rozwiązaniem

Moje pytanie brzmi: w jaki sposób należy mapować znaczniki czasu rozpoznające strefę czasową na moje jednostki JPA?

questionAnswers(2)

yourAnswerToTheQuestion