У меня есть два класса: один пользователь, а другой - этнический. Оба имеют одну к одной ассоциации, этническая принадлежность имеет внешний ключ user_id, но проблема в том, что я получаю нулевое значение против столбца внешнего ключа в таблице этнической принадлежности. Я устанавливаю эти значения динамически, используя страницу jsp.Как сохранить значение внешнего ключа, используя аннотацию Hibernate и JPA
Моих отображений являются следующими
User Class
@OneToOne(cascade = CascadeType.ALL, mappedBy="user")
public Ethnicity ethnicity;
getter/setter
Ethnicity Class
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
public User user;
getter/setter
Чтобы получить данные, я использую ту же страницу JSP, где я устанавливаю значение. Вот код, как я получаю данные
<c:forEach items="${userList}" var="user">
<tr>
<td>${user.userId}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td>${user.firstName}</td>
<td>${user.lastName}</td>
<td>${user.active}</td>
<td>${user.ethnicity.ethnicityId }</td>
<td>${user.ethnicity.nationality }</td>
<td>${user.ethnicity.race }</td>
<td>${user.ethnicity.region }</td>
<td>${user.ethnicity.religion }</td>
</tr>
</c:forEach>
Это одна из функций, которые нужно добавить пользователю.
@Service
@Transactional(readOnly = true)
public class UserServiceImp implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private Mapper mapper;
@Transactional
public void add(UserDTO userDTO) {
User user = mapper.map(userDTO, User.class);
userRepository.save(user);
}
}
класс обслуживания пользователя расширяет JpaRepository и EntityManager Я использую Maven зависимостей.
и как вы их продолжали? и вы установили ОБОИХ сторон отношения? и как вы их получили? –
@NeilStockton см. Обновленный код. – Bilal
где? Вы не указываете код JPA, вы не упоминаете, как вы установили связь и сохранили их. –