#java #json #spring-data-jpa
Вопрос:
Я должен добавить нового пользователя, используя метод post. Если имя местоположения, предоставленное пользователем, существует в таблице location_table, имя местоположения и соответствующее ему состояние в таблице location_table будут учтены в новой записи пользователя, которая будет сохранена в таблице user_table. Код для этого содержится в инструкции else ниже.
@Component public class UserManager{ @Autowired private UserRepository uRepo; @Autowired private LocationRepository lRepo; @Transactional public void save(UserDto u){ User user = new User(); Location location = new Location(); if(!lRepo.existsByLocName(u.getLocName())){ user.setBatchNum(u.getBatchNum()); user.setLocName(u.getLocName()); user.setState(u.getState()); location.setLocName(u.getLocName()); location.setState(u.getState()); } else{ user.setBatchNum(u.getBatchNum()); user.setLocName(u.getLocName()); user.setState(l.getState ()); // How do I turn this l in “l.getState()” into // a variable for Location so I can get the State of // that Location entity (not in UserDto)? } lRepo.save(location); uRepo.save(user); }
Комментарии:
1. Чего именно ты хочешь ? Вы хотите, чтобы данные о местоположении выбирались из u.getLocName, когда lRepo.existsByLocName имеет значение true?
Ответ №1:
Попробуйте добавить метод LocationRepository
, который вернет состояние местоположения по имени пользователя, а затем используйте его в качестве аргумента user.setState(...)
.