【发布时间】:2021-09-09 12:29:21
【问题描述】:
我目前正在开发一个具有 Spring Security 的 Spring Boot API 来注册和登录。
@Entity
public class Users{
@Id
@Column(name = "userid", unique = true, nullable = false)
public String userid;
@Email
@Column(unique = true, nullable = false)
public String username;
@JsonProperty(access = JsonProperty.Access.READ_WRITE)
private String password;
@Column(columnDefinition = "boolean default true")
public boolean enabled;
道类
@EnableTransactionManagement
public interface UserDao extends JpaRepository<Users, String> {
public Users findDistinctByUsername(String username);
}
控制器
Users user = userdao.findDistinctByUsername(username);
当我使用用户名作为@Id 时它工作正常,但如果我使用用户名作为@Id,我会收到错误
错误: org.springframework.orm.jpa.JpaSystemException:通过反射持久属性 [com.example.demo.Model.Users#username] 访问字段 [public java.lang.String com.example.demo.Model.Users.username] 时出错: T1EzQkExUU41Tg;嵌套异常是 org.hibernate.property.access.spi.PropertyAccessException: Error access field [public java.lang.String com.example.demo.Model.Users.username] 通过反射持久属性 [com.example.demo.Model .Users#username] : T1EzQkExUU41Tg",
T1EzQkExUU41Tg: 用户 ID
【问题讨论】:
-
数据库中用户id的数据类型是什么
-
用户 ID:Varchar
标签: spring spring-boot hibernate spring-mvc spring-security