2010-06-03 20 views
8

Trường hợp ngoại lệ sau ném cho ứng dụng Spring Batch:"Thực hiện một bản cập nhật/xóa truy vấn" ngoại lệ cho @NamedQuery làm BỎ

19:12:40,083 ERROR main AbstractStep:213 - Encountered an error executing the step 
javax.persistence.TransactionRequiredException: Executing an update/delete query 

Mã, nơi tên truy vấn sử dụng:

entityManagerFactory.createEntityManager() 
        .createNamedQuery("removeQuery").executeUpdate(); 

cũng đã cố gắng để quấn mã này vào bắt đầucam kết các phương thức EntityTransaction đối tượng và, không trợ giúp:

EntityManager em = entityManagerFactory.createEntityManager(); 
EntityTransaction transaction = em.getTransaction(); 
transaction.begin(); 
entityManagerFactory.createEntityManager() 
        .createNamedQuery("removeQuery").executeUpdate(); 
transaction.commit(); 
em.close(); 
entityManagerFactory.close(); 

cảm ơn bạn trước

+0

Và những gì 'removeQuery' trông như thế nào? –

Trả lời

2

Bạn không sử dụng cùng một thực thể quản lý để tạo ra giao dịch của bạn và để tạo ra truy vấn của bạn.

Thay

entityManagerFactory.createEntityManager() 
        .createNamedQuery("removeQuery").executeUpdate(); 

bởi

em.createNamedQuery("removeQuery").executeUpdate(); 
Các vấn đề liên quan