Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

JPA 2.0 Oracle DATE memiliki waktu nol

Untuk masalah seperti ini, biasanya membantu menyediakan versi driver JDBC dan dialek yang Anda gunakan.

Bagaimanapun, pemahaman saya adalah bahwa Anda sebenarnya menginginkan pemetaan berikut (untuk DATE dan WAKTU):

@Column(name = "READING_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date readingDate;

Dan masalah yang Anda hadapi entah bagaimana terkait dengan kegilaan yang diperkenalkan oleh Oracle dengan versi 9.2, lihat Apa yang terjadi dengan DATE dan TIMESTAMP? (singkatnya, mereka memperkenalkan TIMESTAMP kolom dan mengubah pemetaan DATE Jenis SQL, baca FAQ). Ada beberapa opsi untuk menyelesaikannya (tentu saja saya berasumsi Anda menggunakan TemporalType.TIMESTAMP pemetaan):

Gunakan TIMESTAMP jenis kolom (Maksud saya bukan TemporalType.TIMESTAMP di sini, maksud saya tipe kolom di sisi DB). Tetapi jika Anda tidak membutuhkan presisi nanodetik, ini bukan pilihan terbaik.

Atau atur oracle.jdbc.V8Compatible=true mode kompatibilitas, baik sebagai properti sistem atau sebagai properti koneksi:

<property name="hibernate.connection.oracle.jdbc.V8Compatible">true</property>

Ya, Anda dapat mengatur properti koneksi sewenang-wenang seperti ini. Dari dokumentasi Hibernate:

Atau gunakan driver Oracle JDBC 11.1 (mereka "memperbaiki" masalah dengan mengembalikan perubahan). Ini adalah IMO solusi ideal (V8Compatible barang sudah tidak digunakan lagi).

Masalah terkait



  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 menggunakan data dari oracle untuk menghitung di C #?

  2. Baca Dan Impor File CSV Di Oracle PL/SQL Secara Efisien

  3. SQL Server:setara RowVersion di Oracle

  4. ORA-12154 tidak dapat menyelesaikan pengidentifikasi koneksi yang ditentukan

  5. Tabel filter ADF berdasarkan pemilihan pohon