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实现的信息,请参阅其他注释 您应该更改问题的标签/标题