【发布时间】:2018-07-05 13:21:47
【问题描述】:
我是 Spring/JPA 的新手,我正在尝试使用数据库关系 @annotations 来简化我的代码。
我有两个实体,一个用户和令牌实体。 当对用户调用 setToken() 时,我希望 Token 覆盖表中与用户关联的任何旧令牌。
目前,新令牌(通过 user.setToken())正在 INSERT 而不是 UPDATE。
我该如何建立这种关系?在“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;
【问题讨论】:
标签: spring spring-boot jpa hibernate-annotations