Переход в спящий режим как сопоставить set с объектом, где у меня есть два ключа

#hibernate

#спящий режим

Вопрос:

У меня есть две сущности A, B, где A — это один, а B — это много

A:

   @Entity
  @Table(name = "A") 
   class A...{
    @Id
@Column(name = "A2id",nullable = false)
private Integer A2id;

    @Id
@Column(name = "A1id",nullable = false)
private Integer A1id;

    @OneToMany(mappedBy="a")
private Set<B> Bset;

   //get's set's and public c'tor
  

}

B выглядит следующим образом

 @Entity
@Table(name = "B")
public class B implements Serializable{

//id's
@Id
@Column(name = "B1id", nullable = false)
private Integer B1id;
@Id
@Column(name = "B2id",nullable = false)
private Integer B2id;

@ManyToOne
@JoinColumn(name="B2id",nullable = false)
private A a;

//get's set's and public c'tor
 }
  

и спящий режим кричит на меня :

Внешний ключ, ссылающийся на com..A из com..B, имеет неправильный номер столбца. должно быть 2

что здесь не так? пожалуйста, помогите мне

Ответ №1:

Я выяснил, как решить эту проблему :

используя :

 @ManyToOne
@JoinColumns( {
    @JoinColumn(name = "a1",  unique = false, nullable = false, insertable = false, updatable = false),
    @JoinColumn(name = "a2",  unique = false, nullable = false, insertable = false, updatable = false) })
private A a;