Я пытаюсь использовать аннотацию hibernate для написания класса модели для моих таблиц базы данных.Как создать ограничение внешнего ключа с помощью аннотаций спящего режима?
У меня есть две таблицы, каждая из которых имеет первичный ключ пользователя и вопрос.
@Entity
@Table(name="USER")
public class User
{
@Id
@Column(name="user_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name="username")
private String username;
// getter and setter
}
Таблица вопросов.
@Entity
@Table(name="QUESTION")
public class Questions extends BaseEntity{
@Id
@Column(name="question_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="question_text")
private String question_text;
// getter and setter
}
И у меня есть еще одна таблица, UserAnswer, который имеет USERID и QuestionID как внешние ключи из вышеупомянутых двух таблиц.
Но я не могу найти, как я могу ссылаться на эти ограничения в таблице UserAnswer.
@Entity
@Table(name="UserAnswer ")
public class UserAnswer
{
@Column(name="user_id")
private User user;
//@ManyToMany
@Column(name="question_id")
private Questions questions ;
@Column(name="response")
private String response;
//getter and setter
}
Пожалуйста, помогите мне достичь этого? Спасибо заранее.
Благодарим вас за ответ. Нужно ли создавать новый столбец в таблице как useranswer_id? Возможно ли, что я могу сделать другие два идентификатора в виде составных клавиш? – vikiiii
Возможно, но это плохой дизайн, болезненный, сложный в использовании и неэффективный. Соблюдайте правильные вещи и назначьте автогенерированный идентификатор с одним столбцом ко всем вашим объектам. –
@JB_Nizet Я не возражаю, добавив столбец id в объект. Но мне нужно также добавить столбец в таблицу? Я имею в виду базу данных оракула. – vikiiii