J'ai trois tables l'une pour contenir l'information de l'élève, la seconde qui contient l'information sur la classe. Troisièmement, il faut associer la table des élèves et studentclass classeJPA: cascade dans une relation d'association de table
Les entités et les relations sont donnés ci-dessous
class Student
{
@Id
@Column(name="STUDENT_ID")
long studentId;
@OneToMany(cascade=CascadeType.ALL,mappedBy="student")
Set<StudentClass> studentClasses
}
class Class
{
@Id
@Column(name="CLASS_ID")
long classId;
@OneToMany(cascade=CascadeType.ALL,mappedBy="class")
Set<StudentClass> studentClasses
}
class StudentClass
{
@Id
@Column(name="STUDENT_CLASS_ID")
long studentClassid;
@ManyToOne
@JoinColumn(name="STUDENT_ID")
private Student student;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="CLASS_ID")
private Class class;
}
class persist{
public void persist(){
Student student1 = new Student();
Class class1 = new Class();
session.save(class1);
StudentClass studentClass = new StudentClass();
studentClass.setClass(class1);
studentClass.setStudent(student1);
student1.getStudentClasses().add(studentClass);
session.save(student1);
session.getTransaction().commit();
}
}
La logique de persistance ci-dessus fonctionne bien comme je sauverai Class1 séparément et enfin la classe des étudiants. Mais si j'essaie de sauver l'élève1 seul, la classe 1 ne sera pas sauvée? Si la réponse est la classe et les étudiants ne sont pas directement liés, alors comment récupérer récupère toutes les classes quand j'essaie d'aller chercher un étudiant