#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;