Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menambah panjang String di mysql saat memetakan menggunakan JPA

Ini karena panjang default VARCHAR kolom dalam pernyataan DDL yang dibuat oleh sebagian besar penyedia JPA (termasuk Hibernate dan EclipseLink) adalah 255. Menentukan length atribut ke @Column anotasi membantu menimpa nilai, sehingga nilai baru diambil oleh generator skema penyedia JPA.

Ini adalah asumsi yang salah. Penyedia JPA akan membuat tabel hanya sekali, dan tidak akan secara dinamis mengubah panjang tabel yang mendasarinya selama masa pakai aplikasi, dan hanya jika Anda mengonfigurasi penyedia untuk membuat/memperbarui definisi tabel di tempat pertama. Selain itu, pemetaan default String adalah SQL VARCHAR ketik.

Anda tampaknya telah mengonfigurasi penyedia JPA untuk membuat tabel sesuai kebutuhan (setelah mungkin menjatuhkannya), selama proses inisialisasi. Jika Anda menggunakan Hibernate, ini dilakukan dengan menggunakan hibernate.hbm2ddl.auto properti yang ditentukan dalam persistence.xml dengan nilai update , create atau create-drop . Dengan EclipseLink, Anda akan menentukan properti eclipselink.ddl-generation dengan nilai create-tables atau drop-and-create-tables .

Kedua properti di atas tidak disarankan untuk digunakan dalam produksi lingkungan . Pendekatan yang ideal adalah memiliki skrip DDL untuk membuat tabel. Karena, Anda menggunakan VARCHAR , Anda harus menentukan panjang yang sesuai dalam definisi kolom, agar sesuai dengan panjang maksimum input pengguna . Selain itu, karena Anda menggunakan VARCHAR lebih dari CHAR , mesin database akan memastikan bahwa ruang penyimpanan yang dialokasikan akan bergantung pada ukuran catatan yang disimpan.

Jika Anda tidak memerlukan String ke default VARCHAR pemetaan dan alih-alih menggunakan pemetaan lain yang valid, maka Anda harus menggunakan columnDefinition atribut @Column anotasi. Contoh penggunaan untuk pemetaan Calendar ke TIMESTAMPTZ Tipe data SQL ditampilkan di JPA WikiBook ; Anda harus memodifikasi ini agar sesuai dengan kebutuhan Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - datetime ke detik

  2. Mengakhiri koneksi mysql yang menganggur

  3. Masukkan array ke database MySQL dengan PHP

  4. Kesalahan sintaks SQL LIMIT

  5. Grup MySQL Berdasarkan Jam