Ich versuche Hibernate Annotation zum Schreiben einer Modellklasse für meine Datenbanktabellen zu verwenden.Wie kann ich eine Fremdschlüsseleinschränkung mithilfe von Hibernate-Anmerkungen erstellen?
Ich habe zwei Tabellen mit jeweils einem Primärschlüssel Benutzer und Frage.
@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
}
Fragetabelle.
@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
}
Und ich habe noch eine Tabelle, UserAnswer, die Benutzer-ID und QuestionID als Fremdschlüssel aus den obigen zwei Tabellen hat.
Ich kann jedoch nicht finden, wie ich diese Einschränkungen in der Tabelle UserAnswer referenzieren kann.
@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
}
Bitte helfen Sie mir, dies zu erreichen? Vielen Dank im Voraus.
Vielen Dank für die Antwort. Ist es notwendig, eine neue Spalte in der Tabelle als userswer_id anzulegen? Ist es möglich, wenn ich die anderen zwei IDs als zusammengesetzte Schlüssel machen kann? – vikiiii
Es ist möglich, aber es ist schlechtes Design, schmerzhaft, schwer zu benutzen und ineffizient. Tun Sie das Richtige und weisen Sie allen Ihren Entitäten eine automatisch generierte Einspalten-ID zu. –
@JB_Nizet Ich habe nichts dagegen, eine ID-Spalte zu einer Entität hinzuzufügen. Muss ich aber auch eine Spalte in der Tabelle hinzufügen? Ich meine Oracle-Datenbank. – vikiiii