Combinando ações JPA e JDBC em uma transação

Então, eu tenho um aplicativo com algumas chamadas JDBC legadas nele que eu preciso atualizar com algumas ações JPA adicionais. Eu preciso ser capaz de fazer chamadas JDBC e chamadas JPA como parte da mesma transação de banco de dados. Estou usando o OpenJPA 2.1.1 e o Postgres 9.1, se isso for importante. O código a seguir parece funcionar corretamente - executei alguns testes básicos e as instruções JDBC e JPA são executadas; um erro em um dos resultados faz com que o par de instruções não aconteça (por exemplo, elas fazem parte da mesma transação de banco de dados). Existe algum problema com isso que eu não esteja vendo - alguma prática recomendada que estou violando, ou algum outro motivo pelo qual não posso reutilizar o objeto Connection dessa maneira?

EntityManager em = _em; //acquired from OpenJPA
em.getTransaction().begin();
Connection conn;
try {
  OpenJPAEntityManager oem = (OpenJPAEntityManager) em.getDelegate();
  conn = oem.getConnection();
  PreparedStatement ps = conn.prepareStatement(myStatement);
  //initialize parameters in ps
  ps.executeUpdate();
  em.merge(myJpaObject);
  em.getTransaction().commit();
} finally {
    if (ps != null && !ps.isClosed()) {
      ps.close();
    }
    if (em.getTransaction().isActive()) {
    em.getTransaction().rollback();
  }
}

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion