データベーステーブルのモデルクラスを作成するために、hibernateアノテーションを使用しようとしています。hibernateアノテーションを使用して外部キー制約を作成するにはどうすればよいですか?
私はそれぞれ主キーUserとQuestionを持つ2つのテーブルを持っています。
@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
}
私は上記の2つのテーブルからの外部キーとしてuserIdとquestionIdを持つもう1つのテーブルUserAnswerを持っています。
しかし、これらの制約を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としてテーブルに新しい列を作成する必要がありますか?他の2つのIDを合成キーとして作ることは可能ですか? – vikiiii
可能ですが、デザインが苦しく、使いにくく、非効率です。正しいことを行い、すべてのエンティティに自動生成された単一列のIDを割り当てます。 –
@JB_Nizet IDの列をエンティティに追加しても構いません。しかし、私もテーブルに列を追加する必要がありますか?私はOracleデータベースを意味する。 – vikiiii