В крайна сметка накарах това да "работи" - по хакерски начин - като изключих проверката на схемата.
Преди това имах <property name="hibernate.hbm2ddl.auto" value="validate"/>"hibernate.hbm2ddl.auto"
в моята упоритост.xml. Когато коментирах това свойство, моят сървър за приложения стартира и моделът „работеше“.
Окончателната форма на моя обект беше:
@Entity
@Table(schema = "content", name = "theme")
public class Theme extends AbstractBaseEntity {
private static final long serialVersionUID = 1L;
@Column(name = "run_from", columnDefinition = "timestamp with time zone not null")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date runFrom;
@Column(name = "run_to", columnDefinition = "timestampt with time zone not null")
@NotNull
@Temporal(TemporalType.TIMESTAMP)
private Date runTo;
/* Getters, setters, .hashCode(), .equals() etc omitted */
След като прочетох доста по този въпрос, останах с впечатлението, че няма лесен начин за съпоставяне на времевия печат на Postgresql с колони за часова зона.
Някои JPA внедряване + комбинации от бази данни поддържат това естествено (EclipseLink + Oracle е един пример). За хибернация, с разширения на jodatime, е възможно да се съхраняват времеви клейма, съобразени с часовата зона, като се използва нормално времево клеймо + поле varchar за часовата зона (не можах да направя това, тъй като бях ограничен от промяна на схемата на базата данни). Типове потребители на Jadira или напълно персонализирани типове потребители също могат да се използват за справяне с този проблем.
Трябва да отбележа, че моят случай на използване за този обект е „само за четене“, така че мога да се измъкна с привидно наивно „решение“.