Java Oracle的Spring安全用户详细信息

Java Oracle的Spring安全用户详细信息,java,spring,spring-security,Java,Spring,Spring Security,我正在实现有一些方法的接口UserDetails。它们都返回一个布尔值,例如: public boolean isAccountNonExpired(); 在Oracle中不存在BOOLEAN类型为SQL列表属性,因此我必须将其定义为VARCHAR2(1) 我是我的类(实现了UserDetails),我已经将accountNonExpired字段定义为String(而不是boolean) 因此,isAccountNoneExpired()如下所示: @Column(name = "Accoun

我正在实现有一些方法的接口
UserDetails
。它们都返回一个布尔值,例如:

public boolean isAccountNonExpired();
在Oracle中不存在
BOOLEAN
类型为SQL列表属性,因此我必须将其定义为
VARCHAR2(1)

我是我的类(实现了
UserDetails
),我已经将accountNonExpired字段定义为String(而不是boolean)

因此,isAccountNoneExpired()如下所示:

@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中

这是一个JPA/Hibernate问题,它不是专门针对spring安全性的

有关纯JPA实现的信息,请参阅;对于hibernate实现的信息,请参阅其他注释

您应该更改问题的标签/标题