< strong>Определение сущности:
Код: Выделить всё
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;
@Table("users")
public class UserEntity {
@Id
private Long id;
@Column("sms_list")
private Boolean smsPermited;
public Boolean getSmsList() {
return this.smsPermited;
}
public void setSmsList(Boolean smsPermited) {
this.smsPermited = smsPermited;
}
public Boolean getSmsPermited() {
return smsPermited;
}
public void setSmsPermited(Boolean smsPermited) {
this.smsPermited = smsPermited;
}
Код: Выделить всё
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
sms_list INT(11) NOT NULL DEFAULT 0
При запуске приложения возникает следующая ошибка:
Код: Выделить всё
No converter found capable of converting from type [java.lang.Integer] to type [java.lang.Boolean]
Что я сделал Пробовал:
1.Использование @Column в Getter:
- Я попытался переместить @Column ("sms_list") аннотация к методу получения вместо поле.
- Ошибка сохраняется.
- Я попытался определить методы получения и установки, которые вручную преобразуют целое число в логическое значение.
- Мне известны решения, предполагающие создание глобальных преобразователей, но я хочу избегать этого подхода, поскольку он повлияет на все целочисленные поля в моем приложении глобально.
Я хочу:
- Сохранить поле smsPermited как логическое значение в моей сущности для использования на уровне приложения.
- Сохраните значение как 1 (истина) или 0 (ложь) в базе данных, не затрагивая другие целочисленные поля.
- Есть ли способ локально определить преобразование типа для этого конкретного поля без использования глобального R2dbcCustomConversions?
- Есть ли лучшие практики в Spring Data? R2DBC для обработки таких несоответствий типов?
- Является ли мой подход с использованием отдельного метода получения/установки с преобразованием хорошей практикой или есть лучшее решение?
< /ul>
Версии Spring Boot и библиотеки: - Spring Boot: 5.6.15
Весенние данные R2DBC: 3.4.1 - База данных: MySQL 5.6
- Версия Java: 17
Подробнее здесь: https://stackoverflow.com/questions/793 ... ata-entity