当数据库中存在用户时,另一个具有完全相同凭据的用户“成功”插入到数据库中...
大家好!我正在构建自己的电子商务应用程序,我包含了spring security。现在,当我在开发应用程序的安全部分时,我试着看看它是否工作,一旦我在请求正文中输入了所需的信息,第一次请求时,用户成功地插入到数据库中,但当我第二次尝试时,为了检查抛出错误的userExists
是否工作,该用户已经注册,它只是添加了具有相同凭据的另一个用户(名字,姓氏,邮件等等)。我去userRepository检查是否已经有使用相同电子邮件的用户,我写的东西是有意义的,但是它不起作用...请帮助...以下是所有的文件:
编辑:错误地复制了UserRegistrationController两次......因此,下面是userService.java:
第一个问题:
2条答案
按热度按时间fkaflof61#
我刚刚修正了我的错误。错误是在数据库中,我忘记了将电子邮件设置为唯一的。一旦我这样做了,代码就完美地工作了。
vpfxa7rd2#
如果没有UserService,很难说会发生什么,但是如果我看到jpaMap,我可以猜测,如果您希望每个唯一用户都有唯一的条目,您必须删除生成列ID,而必须在电子邮件上添加@Id注解在这种情况下,您还需要在SQL表中进行更改或者,您可以保留当前Map,并在保存实体之前简单地执行findByEmail如果Optional不为空-则用户已在数据库中注册。