gpt4 book ai didi

java - Spring Controller 中搜索的方法不起作用

转载 作者:行者123 更新时间:2023-12-02 08:43:01 25 4
gpt4 key购买 nike

请帮忙解决搜索问题

Spring Controller 中搜索的方法不起作用

出现意外错误(类型=内部服务器错误,状态=500)。未找到用户类型的属性用户!org.springframework.data.mapping.PropertyReferenceException:找不到类型 User 的属性用户!

当我尝试按用户名搜索用户时,收到一条错误,引用了 UserService 中的一行:

return userRepo.findByUsername (search, pageable);

用户存储库:

public interface UserRepo extends CrudRepository<User, Long> {
User findByUsername(String username);

User findByActivationCode(String code);

Page<UserDto> findAll(Pageable pageable);

Page<UserDto> findByUsername(@Param("username") String search, Pageable pageable);

}

用户服务:

@Service
public class UserService implements UserDetailsService {
@Autowired
private UserRepo userRepo;

public Page<UserDto> userList(Pageable pageable, String search) {
if (search != null && !search.isEmpty()) {
return userRepo.findByUsername(search, pageable);
} else {
return userRepo.findAll(pageable);
}
}

Dto:

public class UserDto {
private Long id;
private String firstname;
private String lastname;
private String username;
private String email;
...

public UserDto(User user) {
this.id = user.getId();
this.firstname = user.getFirstname();
this.lastname = user.getLastname();
this.username = user.getUsername();
this.email = user.getEmail();
...
}... + getters

Controller :

@GetMapping("/users")
public String readAllUsers(
@RequestParam(required = false, defaultValue = "") String search,
@PageableDefault(sort = {"id"}, direction = Sort.Direction.DESC) Pageable pageable,
Model model) {
Page<UserDto> page = userService.userList(pageable, search);
model.addAttribute("url", "/admin/users");
model.addAttribute("page", page);
model.addAttribute("search", search);
model.addAttribute("roles", Role.values());
return "adminUsers";
}

表格:

<form action="/admin/users" method="get" class="d-flex justify-content-center">
<!-- Default input -->
<input type="search" name="search" value="${search?ifExists}"
placeholder="Enter you query" aria-label="Search" class="form-control">
<button class="btn btn-primary btn-sm my-0 p" type="submit">
<i class="fas fa-search"></i>
</button>

</form>

全文错误:https://drive.google.com/file/d/1cA0Gs1CKECHMZkgzlMqeHbK5WZLatowk/view?usp=sharing

最佳答案

您的存储库正在使用 User ,它无法返回 Page<UserDto> ...仅 Page<User> 。您需要映射UserUserDto由存储库返回后。

关于java - Spring Controller 中搜索的方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61259049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com