R2DBC: обработка перечислений Java с идентификаторами PostgreSQL приводит к исключению «Невозможно закодировать параметрJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 R2DBC: обработка перечислений Java с идентификаторами PostgreSQL приводит к исключению «Невозможно закодировать параметр

Сообщение Anonymous »

Я разрабатываю приложение Spring Boot, используя R2DBC с PostgreSQL. В моем приложении есть сущность MyObject, которая включает в себя поле status типа Status, которое представляет собой перечисление Java. Перечисление Status сопоставляется со столбцом STATUS_ID в базе данных, который является внешним ключом для отдельной таблицы Status.
Я сталкиваюсь со следующим исключением при попытке запросить или обновить myObject на основе их статус:

Код: Выделить всё

Copy code

Код: Выделить всё

java.lang.IllegalArgumentException: Cannot encode parameter of type Status (IN_PROGRESS)
Что я пробовал:
Передача примитивных типов:
Я убедился, что передаю int ID перечисления Status при вызове методов репозитория, а не самого перечисления.
Пользовательские преобразователи:
Я определил пользовательские преобразователи в R2dbcCustomConversions для обработки преобразования между статусом и целым числом.
Сопоставление сущностей:В сущности MyObject у меня есть:

Код: Выделить всё

@Data
@Table("MYOBJECT")
public class MyObject {
// Other fields...

@Column("STATUS_ID")
private Status status;
}

Код: Выделить всё

public enum Status {
IN_PROGRESS(1), SUCCESS(2), FAILED(3);

public final int id;

Status(int statusId) {
this.id = statusId;
}

public static Status fromId(int id) {
for (Status status : Status.values()) {
if (status.getId() == id) {
return status;
}
}
throw new IllegalArgumentException("Invalid Status ID: " + id);
}

public int getId() {
return id;
}
}

@Slf4j
@Configuration
public class R2dbcCustomConversionConfig {

@Bean
public R2dbcCustomConversions customConversions(ObjectMapper objectMapper) {
List

Подробнее здесь: [url]https://stackoverflow.com/questions/79057543/r2dbc-handling-java-enums-with-postgresql-ids-results-in-cannot-encode-paramet[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»