Я не уверен, что это только части сущностей, но для того, чтобы у сущности был идентификатор, вам необходимо предоставить ему его и аннотировать соответствующее поле как @Id. Я также использую @GeneratedValue (strategy = GenerationType.IDENTITY), поэтому каждая таблица получит свой собственный идентификатор (сгенерированный Hibernate, вы не предоставляете идентификатор при сохранении нового объекта, а не глобальный идентификатор, в противном случае допустим, вы добавляете Предложите, вы получите идентификатор со значением x, затем добавьте нового пользователя, вы получите идентификатор со значением x + 1 и так далее ...
@Entity
@Data
@NoArgsConstructor
public class Offer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "user_id", referencedColumnName = "id")
private User user;
}
@Data
@EqualsAndHashCode
@Entity
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL,fetch=FetchType.LAZY)
private Set<Offer> offers = new HashSet<Offer>();
}`