Ir ao conteúdo

Posts recomendados

Postado

Olá a todos.
Estou um problema no meu código, estou a fazer um programa em que o utilizar faz um relatório pequeno sobre acontecimentos num jogo de futebol.
Até então tudo certo, mas ao criar o relatório em si para o colocar na base de dados está a dar o erro:

"

Cannot begin Transaction on closed Session/EntityManager
    at [email protected]/org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:63)
    at com.example.proj2dal/com.example.proj2dal.BLL.RelatoryBLL.create(RelatoryBLL.java:18)
    at com.example.proj2ui/com.example.proj2ui.Controllers.ReportGameController.submitReport(ReportGameController.java:38)"

 

O motivo eu não sei qual é porque o meu metodo "create" na classe RelatoryBLL é exatamente igual a todos os outros, e os outros estão a funcionar.
O método é o seguinte:

public static void create(RelatorioEntity rl) { 
  EntityManager em = null; try { 
    em = DBConnection.getEntityManager(); 
    em.getTransaction().begin(); 
    em.persist(rl); 
    em.getTransaction().commit(); 
  } catch (Exception e) { 
    if (em != null && em.getTransaction().isActive()) { 
      em.getTransaction().rollback(); 
    } throw e; 
  } finally{ 
    if (em != null) { 
      em.close(); 
    } 
  } 
}



E está a ser inovado aqui "

@FXML void submitReport(ActionEvent event){ 
  try { 
    RelatorioEntity relatorio = new RelatorioEntity(); 
    relatorio.setIdJogo(game.getIdGame()); 
    relatorio.setDescricao(reportTxtArea.getText()); 
    relatorio.setIdRelatorio(RelatoryBLL.getNextAvailableId()); 
    logger.info("Submitting report with ID: " + relatorio.getIdRelatorio()); 
    RelatoryBLL.create(relatorio); 
    showAlert(Alert.AlertType.INFORMATION, "Sucess", "Report submitted successfully."); 
    loadPage(submitButton, "/com/example/proj2ui/UserMenu.fxml", "Menu"); 
  } catch (Exception e) { 
    e.printStackTrace(); 
    showAlert(Alert.AlertType.ERROR, "Error", "Failed to submit the report."); 
  } 
}



Será que alguém me consegue ajudar?
Obrigado desde já pela atenção.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!