change the transaction in DAO, in case it's in transaction and block all, add exception
This commit is contained in:
@@ -10,23 +10,39 @@ public class QuizzDAO extends AbstractJpaDao<Integer, Quizz> {
|
||||
this.setClass(Quizz.class);
|
||||
}
|
||||
|
||||
public void deleteAllQustion(int quizz_id){
|
||||
EntityTransaction et= em.getTransaction();
|
||||
et.begin();
|
||||
Quizz quizz = em.find(Quizz.class, quizz_id);
|
||||
quizz.getQuestions().clear();
|
||||
em.merge(quizz);
|
||||
et.commit();
|
||||
public void deleteAllQustion(int quizzId) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
try {
|
||||
if (!t.isActive()) t.begin();
|
||||
Quizz quizz = em.find(Quizz.class, quizzId);
|
||||
if (quizz != null) {
|
||||
quizz.getQuestions().clear();
|
||||
em.merge(quizz); // ✅ merge instead of persist
|
||||
}
|
||||
t.commit();
|
||||
} catch (Exception e) {
|
||||
if (t.isActive()) t.rollback();
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
public void addQuestion(int quizz_id, int question_id){
|
||||
EntityTransaction et= em.getTransaction();
|
||||
et.begin();
|
||||
Quizz quizz = em.find(Quizz.class, quizz_id);
|
||||
Question question =em.find(Question.class, question_id);
|
||||
public void addQuestion(int quizzId, int questionId) {
|
||||
EntityTransaction t = em.getTransaction();
|
||||
try {
|
||||
if (!t.isActive()) t.begin();
|
||||
Quizz quizz = em.find(Quizz.class, quizzId);
|
||||
Question question = em.find(Question.class, questionId);
|
||||
|
||||
quizz.getQuestions().add(question);
|
||||
em.merge(quizz);
|
||||
et.commit();
|
||||
if (quizz != null && question != null) {
|
||||
quizz.getQuestions().add(question);
|
||||
em.merge(quizz);
|
||||
}
|
||||
t.commit();
|
||||
} catch (Exception e) {
|
||||
if (t.isActive()) t.rollback();
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user