Coba simpan sebagai byte:
UUID uuid = UUID.randomUUID();
byte[] uuidBytes = new byte[16];
ByteBuffer.wrap(uuidBytes)
.order(ByteOrder.BIG_ENDIAN)
.putLong(uuid.getMostSignificantBits())
.putLong(uuid.getLeastSignificantBits());
con.createQuery("INSERT INTO TestTable(ID, Name) VALUES(:id, :name)")
.addParameter("id", uuidBytes)
.addParameter("name", "test1").executeUpdate();
Sedikit penjelasan:tabel Anda menggunakan BINARY (16), jadi membuat serial UUID sebagai byte mentahnya adalah pendekatan yang sangat mudah. UUID pada dasarnya adalah int 128-bit dengan beberapa bit yang dicadangkan, jadi kode ini menuliskannya sebagai int 128-bit big-endian. ByteBuffer hanyalah cara mudah untuk mengubah dua long menjadi array byte.
Sekarang dalam praktiknya, semua upaya konversi dan sakit kepala tidak akan sebanding dengan 20 byte yang Anda hemat per baris.