2015-12-11 23 views
0

我正在使用kundera-cassandra V3.2並且想要使用方法合併來更新實體。Kundera cassandra - 合併方法中的輕量級事務

this.getManager().merge(entity); // this.getManager is a javax.persistence.EntityManager 

是否有使用輕量級事務的可能性(IF子句)調用此方法,或者我需要手動創建一個更新查詢時?

+0

如果Kundera聲稱符合JPA標準,那麼您需要圍繞它進行交易tx.begin,tx.commit。 –

+0

感謝commet,但在我看來,輕量級交易不必對jpa交易管理做任何事情。如果使用附加子句擴展查詢,則使用輕量級事務。我的問題是:在調用EntityManager的merge或persist方法時是否有任何來自Kundera的實現來添加這樣的子句。 –

+0

什麼查詢?你沒有查詢你發佈的內容。合併將執行「更新...」,「刪除...」,「插入...」等依賴於你在「實體」中已經改變了什麼 –

回答

2

在昆德拉,通過createNativeQuery方法支持輕量級交易。沒有與輕量級事務合併的直接方法。

示例代碼:

String query = "UPDATE \"PERSONCASSANDRA\" SET \"PERSON_NAME\" = 'Pragalbh' WHERE \"PERSON_ID\" = '4' IF \"PERSON_NAME\" = 'Karthik'"; 
Query q = entityManager.createNativeQuery(query, PersonCassandra.class); 
q.executeUpdate(); 

請檢查該test-case以獲取更多信息。