【发布时间】:2022-01-17 13:56:47
【问题描述】:
我有很多表,但它们都有共同的自动增量。例如,我创建了我的第一个用户,它的 id 为 1,然后我创建了一条 id 为 2 的消息,然后我为消息创建了一条评论,它的 id 为 3,但它应该有 id = 1,因为我没有任何其他cmets 或消息
我的用户:
@Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "usr")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "role")
private Role role;
@Column(name = "email")
private String email;
@Column(name = "status")
private Status status;
// @OneToMany(mappedBy = "author")
// private List<Message> messages;
// @OneToMany(mappedBy = "author")
// private List<Comment> comments;
@OneToOne
@JoinColumn(name = "gender_id")
private Gender gender;
@OneToOne
@JoinColumn(name = "address_id")
private Address address;
@ManyToMany
@JoinTable(
name = "user_subscriptions",
joinColumns = @JoinColumn(name = "channel_id") ,
inverseJoinColumns = @JoinColumn(name = "subscriber_id"))
private Set<User> subscribers;
@ManyToMany
@JoinTable(
name = "user_subscriptions",
joinColumns = @JoinColumn(name = "subscriber_id") ,
inverseJoinColumns = @JoinColumn(name = "channel_id"))
private Set<User> subscriptions;
@OneToOne
@JoinColumn(name = "file_id")
private FileEntity fileEntity;
}
我的留言:
@Getter
@Setter
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "message")
public class Message {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "text")
private String text;
@Column(name = "tag")
private String tag;
@ManyToOne
@JoinColumn(name = "user_id")
private User author;
@Column(name = "header")
private String header;
@Column(name = "like_count")
private Integer likeCount = 0;
@ManyToMany
@JoinTable(
name = "message_likes",
joinColumns = { @JoinColumn(name = "message_id") },
inverseJoinColumns = { @JoinColumn(name = "user_id")}
)
private Set<User> likes;
@OneToOne
@JoinColumn(name = "file_id")
private FileEntity fileEntity;
}
我的评论:
@Data
@Entity
@Table(name = "comment")
public class Comment {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "header")
private String header;
@Column(name = "text")
private String text;
@Column(name = "like_count")
private Integer likeCount = 0;
@ManyToOne()
@JoinColumn(name = "user_id")
private User author;
@ManyToOne()
@JoinColumn(name = "message_id")
private Message message;
@ManyToMany
@JoinTable(
name = "comment_likes",
joinColumns = { @JoinColumn(name = "comment_id") },
inverseJoinColumns = { @JoinColumn(name = "user_id")}
)
private Set<User> likes;
}
我将不胜感激。
【问题讨论】:
标签: java spring postgresql hibernate spring-data-jpa