О транзакции JPA для создания таблицы и удаления таблицы с собственным запросом

Любой может мне помочь. это проблема, я потратил много времени на это. Я использую транзакцию JTA BMT и собираюсь выполнить 3 шага в одной транзакции:

  1. Вставьте одну строку в таблицу с помощью entitymanager;
  2. Удалить таблицу, если она существует с собственным запросом;
  3. Создать таблицу с собственным запросом; Я написал неправильный SQL для собственного запроса в цели, и откат.

Эти 3 шага в одной транзакции, но шаг 1 всегда успешен. Мне интересно, если нативный запрос ("удалить таблицу и создать таблицу") не поддерживается транзакцией JPA. Спасибо, ребята заранее!! код как это:

try {
    tx.begin();
    table1 t1 = new table1();
    t1.setC1(c1);
    t1.setC2(c2);
    EntityManager em = emf.createEntityManager();
    em.persist(t1);
    Query query1= em.createNativeQuery("drop table if exists table2").executeUpdate();
    Query query2= em.createNativeQuery("xxxxxxxxxxxxxxxx").executeUpdate();
    tx.commit();
    rt = true;
} catch (Exception e) {
    try {
        tx.rollback();
    } catch (Exception e1) {
        PUB.log(e, PUB.getLineInfo());
    }
}

это декларации:

@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class MainSessionBean implements MainSessionBeanRemote {
    @PersistenceUnit(unitName = "CC2016JPA2")
    static EntityManagerFactory emf;
    @Resource
    UserTransaction tx;

0 ответов

Другие вопросы по тегам