О транзакции JPA для создания таблицы и удаления таблицы с собственным запросом
Любой может мне помочь. это проблема, я потратил много времени на это. Я использую транзакцию JTA BMT и собираюсь выполнить 3 шага в одной транзакции:
- Вставьте одну строку в таблицу с помощью entitymanager;
- Удалить таблицу, если она существует с собственным запросом;
- Создать таблицу с собственным запросом; Я написал неправильный 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;