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

Cara memetakan Enum PostgreSQL dengan JPA dan Hibernate

Saya menemukan jawabannya. Saya perlu menggunakan setObject alih-alih setString dalam fungsi nullSafeSet dan meneruskan Types.OTHER sebagai java.sql.type untuk memberi tahu jdbc bahwa itu adalah tipe postgres.

public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
    if (value == null) {
        st.setNull(index, Types.VARCHAR);
    }
    else {
//            previously used setString, but this causes postgresql to bark about incompatible types.
//           now using setObject passing in the java type for the postgres enum object
//            st.setString(index,((Enum) value).name());
        st.setObject(index,((Enum) value), Types.OTHER);
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara memasukkan data ke dalam tabel menggunakan prosedur tersimpan di postgresql

  2. Mengaudit PostgreSQL Menggunakan pgAudit

  3. Pernyataan IF-THEN-ELSE di postgresql

  4. Cara Mengelola Database PostgreSQL Anda Dari ClusterControl CLI

  5. Apa yang Baru di PostgreSQL 12