इसे बाइट्स के रूप में संग्रहीत करने का प्रयास करें:
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();
थोड़ा सा स्पष्टीकरण:आपकी तालिका BINARY(16) का उपयोग कर रही है, इसलिए UUID को इसके कच्चे बाइट्स के रूप में क्रमबद्ध करना वास्तव में सीधा तरीका है। यूयूआईडी अनिवार्य रूप से कुछ आरक्षित बिट्स के साथ 128-बिट इनट्स हैं, इसलिए यह कोड इसे बड़े-एंडियन 128-बिट इंट के रूप में लिखता है। बाइटबफ़र दो लॉन्ग को बाइट ऐरे में बदलने का एक आसान तरीका है।
अब व्यवहार में, सभी रूपांतरण प्रयास और सिरदर्द आपके द्वारा प्रति पंक्ति सहेजे गए 20 बाइट्स के लायक नहीं होंगे।