[CONJ-899] Support UUID Object Created: 2021-09-13  Updated: 2022-11-04  Resolved: 2022-11-04

Status: Closed
Project: MariaDB Connector/J
Component/s: Other
Affects Version/s: None
Fix Version/s: 3.1.0

Type: Task Priority: Major
Reporter: Diego Dupin Assignee: Diego Dupin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
is blocked by MDEV-4958 Adding datatype UUID Closed
Duplicate
is duplicated by CONJ-1001 For UUID column, the type name in met... Closed

 Description   

Support UUID objects
This means supporting PreparedStatement.setObject() with UUID object,
and resultset.getObject() returning UUID object by default.
Resultset metadata will change accordingly

An option to keep default as String must be provided to ensure compatibility.



 Comments   
Comment by Diego Dupin [ 2022-11-04 ]

getter and setter can now pass UUID parameter (i.e. setObject(index, <UUID class>) / getObject(index, UUID.class)

Resultset.getObject without class or type precision will now return UUID object for UUID fields by default
Metadata for UUID columns (MariaDB 10.7 and later) will now return
ResultSetMetaData.getColumnTypeName(index) => "uuid"
ResultSetMetaData.getColumnClassName(index) => "java.util.UUID"
ResultSetMetaData.getColumnType(index) => Types.OTHER
replacing :
ResultSetMetaData.getColumnTypeName(index) => "CHAR"
ResultSetMetaData.getColumnClassName(index) => "java.lang.String"
ResultSetMetaData.getColumnType(index) => Types.CHAR

for compatibility, a new option `uuidAsString` permit to consider UUID as String like previously

result tested with hibernate 6.2.0 (btw, PR submitted https://github.com/hibernate/hibernate-orm/pull/5506)

Generated at Thu Feb 08 03:19:08 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.