Я использую Jpa для связи с базой данных, но полученные данные противоречивы. У меня есть пользовательский класс, имеющий отношение OneToOne к классу Teacher.
@OneToOne(mappedBy="user")
private Teacher teacher; // From user class
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="user_id", referencedColumnName="id")
private User user; // from the teacher class
Я сохраняю учителя следующим образом:
public Teacher save(Teacher teacher, Long id)
{
User user;
Optional<User> ifUser = userRepo.findById(id);
if(ifUser.isPresent()) {
user= ifUser.get();
user.setTeacher(teacher);
user.setCompletedInfo(1);
teacher.setUser(user);
return teacherRepo.save(teacher);
}else {
System.out.println("Couldn't find any user here...");
return null;
}
}
Где userRepo и teacherRepo - это интерфейсы, которые распространяться из JpaRepository. До сих пор это работает довольно круто. Информация обновляется в базе данных. Но когда я получаю информацию из базы данных, она показывает, что
user.getCompletedInfo()
равно нулю. Между тем, я могу видеть в базе данных, что это значение:
user.getCompletedInfo() =1;
База данных MySql, и возможный подход к проблеме, я думаю, заключается в том, что я получаю некоторую информацию из нового пользовательского объекта, который создается где-то. Более того, проект находится на Github: https://github.com/shpendpalushi/JavaWeb/tree/For_Project
Редактировать: Из какого-то модульного тестирования я смог обнаружить, что в setUser службы учителя не выполнял свою работу должным образом. Когда я пытался получить getUser, он возвращал мне ноль; Я делаю что-то не так в методе сохранения?