java - spring 存储库无法通过电子邮件找到

标签 java spring repository

我有一个实体类 User

@Entity
public class User implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Integer id;

    private String name;
    private String email;
    private String phone;
}

在我的 UserDao 上,我可以成功调用方法 User findByName(String name) 返回:

 {
"id": 8,
"name": "roronoa zoro",
"email": "zoro@sunnygo.com"
 }

但调用此方法时总是失败User findByEmail(String email)。 我将“zoro@sunnygo.com”作为参数传递,结果为空。

然后我尝试了 User findByEmailContaining(String email) 并且它有效,为什么我不能使用 findByEmail 来代替?

提前致谢。

最佳答案

可能回答太晚了,但如果其他人有类似的问题,可能是因为您在休息 Controller 上使用 requestmapping 将电子邮件作为 url 参数传递,因此该变量将作为 zoro@sunnygo 而不是 zoro 被接收@sunnygo.com。要解决此问题,只需将 @RequestMapping(value = "/get/{email}", method = RequestMethod.GET) 更改为 @RequestMapping(value = "/get/{email:.+ }", method = RequestMethod.GET)

关于java - spring 存储库无法通过电子邮件找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37649853/

相关文章:

java - JSP、SQL检索数据返回null

java - Hibernate 中的继承。插入示例

java - 如何在 SpringData MongoDb Java bean 中映射二进制数据?

variables - OBIEE 存储库变量和 session 变量之间的区别

java - 为什么 Maven 存储库中的库无法编译?

java - 将 war 部署到 Tomcat 时生成数据库

java - 在Excel中查找列中的单元格数量

java - 通过蓝牙在 Android 应用程序和 PC 应用程序之间发送敏感数据

java - Spring 3.0 本地化在 tomcat 中不起作用,只能从本地的 jetty

apache - CentOS 如何将 ANT 版本更新到 1.8.x 或更高版本?