Как обработать пустые поля, используя Mono < Connection > или DatabaseClient, предоставляемый R2dbc весной?

Я искал решение, позволяющее работать $.bind и $.unbind без проблем в динамически добавленных элементах.

Поскольку on () делает трюк для присоединения событий, чтобы создать фальшивую отвязку на тех, к которым я пришел:

const sendAction = function(e){ ... }
// bind the click
$('body').on('click', 'button.send', sendAction );

// unbind the click
$('body').on('click', 'button.send', function(){} );

1
задан Christian Meyer 28 March 2019 в 00:56
поделиться

1 ответ

Это два вопроса:

  1. Как связать потенциально обнуляемые значения с Statement / DatabaseClient в свободном стиле?
  2. Как позволить базе данных вычислить rest out?

R2DBC и Spring Data R2DBC делают null явную обработку, требуя либо привязки значения к вашему Statement, либо привязки null. Нет способа принять потенциально обнуляемый аргумент. Для этого есть две причины:

  1. Вы должны иметь дело с обнуляемостью, чтобы понять, что там происходит. Это хорошая привычка обрабатывать обнуляемые значения вместо того, чтобы делать null неявную обработку. Неявная природа null - это то, что вызывает большинство ошибок.
  2. Базы данных требуют явного указания. Параметризованные операторы с заполнителями состоят на стороне выполнения двух блоков: самого оператора SQL и привязок параметров (дескрипторов). Дескриптор параметра требует связи с заполнителем, информацией о типе (VARCHAR, BIT, INT,…) и фактическим значением. При вызове bind(…) со значением драйвер может получить информацию о типе. При привязке значения null драйверу требуется дополнительный тип информации. В противном случае мы не сможем выполнить запрос.

Это, как говорится:

  1. Нет такого API, как bindPotentiallyNull("auditId", entity.getTx().getId(), Integer.class)
  2. Вы не можете ничего сделать в запросе SQL, поскольку информация о параметрах привязки предоставляется вспомогательными методами.

Мы сталкиваемся с подобной проблемой, когда говорим о хранимых процедурах, потому что хранимые процедуры требуют дополнительной информации о параметрах входа / выхода / выхода. Мы обсудили потенциальные типы обёрток, такие как

Parameters.in(@Nullable T value, Class<? super T> valueType)

, чтобы их можно было использовать в качестве оберток в

bind("auditId", Parameters.in(entity.getTx().getId(), Integer.class))

. Более подробная информация:

0
ответ дан mp911de 28 March 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: