Я реализую интерфейс UserDetails
, который имеет некоторые методы. Все они возвращают логическое значение, например:Spring Security UserDetails с Oracle
public boolean isAccountNonExpired();
В Oracle не существует BOOLEAN
типа как атрибут столбца таблицы SQL, так что я должен определить это как VARCHAR2(1)
.
Я - мой класс (который реализует UserDetails
) Я определил поле accountNonExpired как String (вместо логического).
Итак, isAccountNonExpired(), как это:
@Column(name = "Account_Non_Expired")
@Override
@XmlElement @JsonProperty
public boolean isAccountNonExpired()
{
return new Boolean(this.accountNonExpired);
}
Когда я пытаюсь выполнить вход (и запрос хранилища таблицу), я получаю следующее сообщение об ошибке:
HHH000123: IllegalArgumentException in class: it.dirimologistika.site.entities.UserPrincipal, setter method of property: accountNonExpired
HHH000091: Expected type: java.lang.String, actual value: java.lang.Boolean
Как я нужно переписать этот класс (и реализует этот метод), используя VARCHAR2 (1) вместо BOOLEAN? Это естественно в MySQL, но в Oracle ..?