Точно следуя этому вопросу, а также решению , я до сих пор не могу решить проблему. Я все еще получаю сообщение "Слишком длинные данные для столбца "id" в строке 1"
public static byte[] asBytes(UUID uuid) {
ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
return bb.array();
}
UUID id= UUID.randomUUID();
InsertQueryBuilder runner = new InsertQueryBuilder("test_table")
.addField("id", asBytes(id));
return getConnection()
.flatMap(connection -> runner.run(connection)
.doOnTerminate(connection::close))
Из этого ответа я понял, что 16 байт - это 32 шестнадцатеричных цифры. Итак, если я изменю тип столбца на BINARY (32), я не получу никакой ошибки, и идентификатор будет успешно записан в БД.
Я пытался сохранить размер ByteBuffer bb равным 8, но потом получаю;
BufferOverflowException
Что мне не хватает?
long
- person Adriano Repetti   schedule 21.05.2018