2015-11-25 3 views
0

Я реализую интерфейс 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 ..?

ответ

0

Это вопрос JPA/Hibernate, это не относится к безопасности весны.

См. https://stackoverflow.com/a/22368268/2257772 для чистой реализации JPA или других комментариев для спящего режима.

Вы должны изменить ярлык/заголовок вашего вопроса

Смежные вопросы