@@ -51,18 +51,19 @@ private void fixAssessmentStatuses() {
5151 if (!assessmentsToFix .isEmpty ()) {
5252 System .out .println ("Found " + assessmentsToFix .size () + " assessments to fix" );
5353
54- HibHelper . getInstance (). preJoin ();
55- em .joinTransaction ();
54+ // Begin transaction using EntityManager's built-in transaction management
55+ em .getTransaction (). begin ();
5656
5757 for (Assessment assessment : assessmentsToFix ) {
5858 assessment .setStatus ("Completed" );
59- em .persist (assessment );
59+ em .merge (assessment ); // Use merge instead of persist for existing entities
6060 System .out .println ("Fixed assessment ID " + assessment .getId () +
6161 " - changed status from Open to Completed (completed date: " +
6262 assessment .getCompleted () + ")" );
6363 }
6464
65- HibHelper .getInstance ().commit ();
65+ // Commit the transaction
66+ em .getTransaction ().commit ();
6667 System .out .println ("Assessment status migration completed successfully" );
6768 } else {
6869 System .out .println ("No assessments found requiring status fix" );
@@ -71,7 +72,7 @@ private void fixAssessmentStatuses() {
7172 } catch (Exception e ) {
7273 System .err .println ("Error fixing assessment statuses: " + e .getMessage ());
7374 e .printStackTrace ();
74- if (em != null && em .getTransaction ().isActive ()) {
75+ if (em != null && em .getTransaction () != null && em . getTransaction () .isActive ()) {
7576 em .getTransaction ().rollback ();
7677 }
7778 } finally {
0 commit comments