2016-04-17 13 views
0

Sorry für Anfänger Frage. Ich bin völlig neu in QueryDSL. Ich versuche, einen Datensatz mit JPAUpdateClause zu aktualisieren, aber ich weiß nicht, was ich für den ersten Parameter EntityManager einstellen sollte. Ich verwende java spring Hier ist meine Einheit:QueryDSL: Entity Manager-Parameter in JPAUpdateClause

@Entity 
public class PurchaseOrder { 

    @id 
    @GeneratedValue 
    Long id; 


    String Status; 
} 

Dann habe ich JPA diese Einheit in einer Datenbank zu haben:

@Repository 
public interface PurchaseOrderRepository extends JpaRepository<PurchaseOrder, Long>, 
QueryDslPredicateExecutor<PurchaseOrder>{} 

Und am Ende i QueryDSL mit einem Datensatz zu aktualisieren versuchen

static QPurchaseOrder purchaseOrder= QPurchaseOrder.purchaseOrder; 
    static QPurchaseOrder purchaseOrder= QPurchaseOrder.purchaseOrder; 
      new JPAUpdateClause(null, purchaseOrder).where(purchaseOrder.id.eq(id))) 
      .set(purchaseOrder.status, "REJECTED") 
      .execute(); 

Ich habe es nur als null festgelegt, aber es funktioniert nicht. Ich bin mir sicher, dass ich die Abhängigkeiten in meiner pom.xml hinzugefügt habe. Gerade jetzt ist es beschweren sich über

java.lang.NullPointerException: null 

Ich habe this gesehen, aber es nicht klären, was die Sitzung?

Antwort

0

Haben Sie versucht, EntityManager so zu injizieren? Es sollte funktionieren.

@PersistenceContext 
private EntityManager entityManager; 

... 
new JPAUpdateClause(entityManager, purchaseOrder).