Точно следуя этому вопросу и решению, я все еще не могу решить проблему.Я все еще получаю «Данные слишком длинные для столбца '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), то я не получаю никакой ошибки, и id успешно записывается в БД.
Я попытался сохранить размер bb ByteBuffer до 8, но затем я получил;
BufferOverflowException
Чего мне не хватает?