我有一个实体类 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/