Я пытаюсь установить единицу измерения ингредиента, но он устанавливает их идентификатор равным нулю. Отправляемый мной объект представляет собой оболочку, содержащую объекты IngredientsCommand.
<select th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure}" name = "unitOfMeasure.id">
<option value = "NULL"></option>
<option th:each = "unit : ${unitOfMeasureSet}"
th:value = "${unit.id}"
th:text = "${unit.unitName}">Test
</option>
</select>
>
@Getter @Setter
@NoArgsConstructor
public class IngredientsCommand {
private Long Id;
private String ingredientName;
private Long recipeId;
private BigDecimal amount;
private String countryOfOrigin;
private BigDecimal ingredientCost;
private RecipeCommand recipe;
private UnitOfMeasureCommand unitOfMeasure;
}
>
@Getter @Setter
@NoArgsConstructor
public class UnitOfMeasureCommand {
private Long id;
private String unitName;
}
Я не подключал преобразователь единиц измерения автоматически, когда он преобразует команду в ингредиент. Я также перешел с th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure}" на th:field = "*{ingredientsWrapper[__${iter.index}__].unitOfMeasure.id}", и теперь он работает. Спасибо за помощь.
Возможный дубликат Идентификатор нулевого объекта контроллера Spring