新規登録処理の実装
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public UserResponse registerUser(UserRequest request) {
User entity = new User();
// リクエストデータをエンティティに反映
entity.setName(request.getUserName());
entity.setEmail(request.getEmailAddress());
userRepository.save(entity);
return new UserResponse(entity.getId(), entity.getName());
}
}
削除処理の実装
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void removeUser(Long userId) {
userRepository.findById(userId).ifPresent(user -> {
userRepository.delete(user);
});
}
}
更新処理の実装
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public UserResponse updateUserDetails(Long id, UserRequest request) {
return userRepository.findById(id)
.map(user -> {
// リクエスト内容でユーザー情報を更新
user.setName(request.getUserName());
user.setEmail(request.getEmailAddress());
userRepository.save(user);
return new UserResponse(user.getId(), user.getName());
})
.orElse(null);
}
}
単一情報取得処理
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public UserResponse fetchUserDetails(Long userId) {
return userRepository.findById(userId)
.map(UserResponse::new)
.orElse(null);
}
}
ページング処理の実装
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public PagedResult<UserResponse> getUsers(PagedRequest request) {
Page<User> pageResult = userRepository.findAll(request.toPageable());
List<UserResponse> responseList = pageResult.getContent().stream()
.map(UserResponse::new)
.collect(Collectors.toList());
return new PagedResult<>(
responseList,
pageResult.getNumber(),
pageResult.getSize(),
pageResult.getTotalElements()
);
}
}
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public PagedResult<UserResponse> searchUsers(PaginationParams params) {
Pageable pageable = CustomPageRequest.of(params.getPage(), params.getSize());
Page<User> pageResult = userRepository.findAll(pageable);
List<UserResponse> responseList = new ArrayList<>();
for (User user : pageResult.getContent()) {
responseList.add(new UserResponse(user));
}
return new PagedResult<>(
responseList,
pageResult.getNumber(),
pageResult.getSize(),
pageResult.getTotalElements()
);
}
}