Я новичок в Spring / JPA и пытаюсь использовать взаимосвязь с базой данных @annotations, чтобы упростить мой код.
У меня есть две сущности: сущность пользователя и токена.
Когда setToken () вызывается для пользователя, я хочу, чтобы токен перезаписывал любые старые токены, связанные с пользователем в таблице.
В настоящий момент новый токен (через user.setToken ()) вставляется, а не ОБНОВЛЯЕТ.
Как мне добиться этих отношений? В "Lame-mans" ... У пользователя может быть только один токен и ему может быть предоставлен другой в любое время, исключая старый.
В этих моделях есть дополнительные поля, которые я обрезал для ясности.
@Entity
@Table(name = "Users")
public class User {
@Column(name = "USER_ID")
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonInclude(JsonInclude.Include.NON_NULL)
private Long userId;
@OneToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
@JoinColumn(name = "REFRESH_TOKEN_ID")
private RefreshToken refreshToken;
...setters and getters
И код для токена:
@Entity
@Table(name = "RefreshTokens")
public class RefreshToken {
@Column(name = "REFRESH_TOKEN_ID")
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long tokenId;