@Jek_Rock
Java developer

Как сделать mapping для классов в Spring?

Есть класс User
@Entity
@Table(name = "users")
public class User {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer userId;

  @OneToMany(mappedBy = "creator")
  Set<Proposal> creatorsProposal;

  @OneToMany(mappedBy = "performer")
  Set<Proposal> performersProposal;
}


И класс Proposal
@Entity
@Table(name = "proposals")
public class Proposal {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Integer id;
  @ManyToOne
  @JoinColumn(name = "userId")
  @NotNull
  private User creator;
 
  @ManyToOne
  @JoinColumn(name = "userId")
  private User performer;


Получаю следующую ошибку
Repeated column in mapping for entity: Proposal column: user_id (should be mapped with insert="false" update="false")


Как правильно сделать mapping для этой схемы?
  • Вопрос задан
  • 809 просмотров
Решения вопроса 2
в @JoinColumn должны быть указаны разные колонки, например

@JoinColumn(name = "creatorUserId") и @JoinColumn(name = "performerUserId")
Ответ написан
Комментировать
@Jek_Rock Автор вопроса
Java developer
Нашел решение. JoinColumn сделал так
@ManyToOne
  @JoinColumn(name = "creatorsUserId", referencedColumnName = "userId")
  @NotNull
  private User creator;

и
@ManyToOne
  @JoinColumn(name = "performersUserId", referencedColumnName = "userId")
  private User performer;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы