I have a binary(48)
column on a table and want to XOR that column in a group (bit_xor
in MySQL, bit_xor_agg
in H2).
I tried to use jOOQ's bitXorAgg()
but it only accepts a field of type ? extends Number
whereas my field is of type bytes[]
(well, in reality, the bytes are encapsulated in a value object and the field is of the same type as the VO).
Is there a way to use bitXorAgg()
with types other than Number
?
You can either assume that jOOQ's internals will not make any data type specific conversions and just coerce data type before and after aggregation (a bit risky):
bitXorAgg(field.coerce(INTEGER)).coerce(VARBINARY)
Or use a plain SQL template expression:
DSL.field("bit_xor_agg({0})", field.getDataType(), field);