PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara memetakan cap waktu postgresql dengan zona waktu di entitas JPA 2

Saya akhirnya membuat ini "berfungsi" - dengan cara hackish - dengan mematikan validasi skema.

Sebelumnya, saya memiliki <property name="hibernate.hbm2ddl.auto" value="validate"/>"hibernate.hbm2ddl.auto" di kegigihan saya.xml. Ketika saya mengomentari properti ini, server aplikasi saya mulai dan modelnya "berfungsi".

Bentuk akhir dari entitas saya adalah:

@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 */

Setelah membaca sedikit tentang ini, saya mendapat kesan bahwa tidak ada cara mudah untuk memetakan cap waktu Postgresql dengan kolom zona waktu.

Beberapa implementasi JPA + kombinasi basis data mendukung ini secara asli (EclipseLink + Oracle adalah salah satu contohnya). Untuk hibernasi, dengan ekstensi jodatime, dimungkinkan untuk menyimpan stempel waktu yang sadar zona waktu menggunakan stempel waktu normal + bidang varchar untuk zona waktu (saya tidak dapat melakukannya karena saya dibatasi untuk mengubah skema basis data). Jenis pengguna Jadira atau tipe pengguna khusus juga dapat digunakan untuk mengatasi masalah ini.

Saya perlu mencatat bahwa kasus penggunaan saya untuk entitas ini adalah "hanya baca", jadi saya bisa lolos dengan "solusi" yang tampaknya naif.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengembalikan hanya waktu kerja dari reservasi di PostgreSql?

  2. format salinan beberapa kolom postgresql Node.js

  3. Cara menjumlahkan dua kolom bersyarat di PostgreSQL 9.3

  4. postgresql menggabungkan beberapa periode menjadi satu

  5. Bagaimana cara membuat ulang tabel yang dihapus dengan Django Migrations?