当我使用下面的方法来获取用户对象时,它工作得很好。
@GetMapping("/findOne")
@ResponseBody
public Optional<AppUser> findOne (Long id) {
return appUserRepository.findById(id);
}
上面给我的回复是:
{"id":1,"useruuid":"863db606-9af6-48a8-963a-07b9fe0fc4fc","useremail":"[email protected] /cdn-cgi/l/email-protection"}
现在,我尝试使用以下命令基于 UUID(4) 进行搜索:
@GetMapping("/findOneUsingUUID")
@ResponseBody
public AppUser findOne (String useruuid) {
return appUserRepository.findByUseruuid(useruuid);
}
这不会返回任何内容。没有错误,没有任何警告。虽然这为我提供了我需要的所有详细信息:
AppUser appUser = appUserRepository.findByUseruuid("863db606-9af6-48a8-963a-07b9fe0fc4fc");
System.out.println(" >>> " + appUser.getUseruuid());
System.out.println(" >>> " + appUser.getId());
System.out.println(" >>> " + appUser.getUseremail());
这就是我的存储库中的内容
@Repository
public interface AppUserRepository extends JpaRepository<AppUser, Long> {
AppUser findByUseruuid(String useruuid);
和实体
@NotEmpty
@Column(name = "useruuid")
@GenericGenerator(name = "uuid", strategy = "uuid4")
private String useruuid;
问题:为什么我的控制器方法@GetMapping("/findOneUsingUUID")
没有返回任何东西?任何相关信息/帮助/链接将不胜感激。
更新(针对 sidgate 的评论/问题):我在另一个控制器方法中对此进行了测试。像这样:
@RequestMapping(value = { "tableusers" }, method = RequestMethod.GET)
public String listUsers(ModelMap model) {
AppUser appUser = appUserRepository.findByUseruuid("863db606-9af6-48a8-963a-07b9fe0fc4fc");
System.out.println(" >>> " + appUser.getUseruuid());
System.out.println(" >>> " + appUser.getId());
System.out.println(" >>> " + appUser.getUseremail());
String tableusers = "tableusers";
model.addAttribute("tableusers", tableusers);
List<AppUser> users = appUserService.findAllUsers();
model.addAttribute("users", users);
model.addAttribute("metaTitle", "All Users");
return "user_table_data_table";
}
更新2:
现在我的控制器中有以下内容:
@RequestMapping(value = "/findOnebyId/{uuid}", method = RequestMethod.GET)
@ResponseBody
public AppUser findOneByUUID2(@PathVariable final String useruuid) {
return appUserRepository.findByUseruuid(useruuid);
}
所以我的 URL 变得类似于这样:
http://localhost:8080/findOnebyId?id=eeadf17f-13f2-4939-bab6-2534fcc1f4d4
但现在我的浏览器控制台出现 404 错误。
更新3:
根据戴尔的建议,我修复了它并签入代码github-repo https://github.com/ajkr195/SpringBootCM。现在一切正常。