2016-08-16 133 views

回答

0

如果你想使用更新特定領域MongoRepository你首先可以加載實體:

Entity entity = repository.findById(1); 

然後改變你希望你的實體的屬性值:

entity.setProperty("New value"); 

最後如果是一個非同步實體(如果同步實體是自動更新的),保存它(如果不存在,則更新數據庫中的實體):

repository.save(entity); 

JpaRepository差不多相等,因爲二者都延伸CrudRepository

+0

這沒關係,先生,但我想更新數據而沒有得到實體對象,根據你的答案,我們需要執行數據庫操作兩次,即findById和保存,有沒有更新沒有呢? – Anil

+0

這個解決方案是最簡單的,多一個數據庫操作幾乎不會影響你的性能(也許在MS ...)。無論如何,如果您需要在一個操作中執行此操作,請使用MongoTemplate執行更新 - > http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo-template.save-更新刪除 – Pau

2

我相信你現在已經得到了答案,還在更新它來幫助其他人。

您可以通過下面的代碼更新特定領域,

Query query1 = new Query(Criteria.where("id").is("123")); 
       Update update1 = new Update(); 
       update1.set("available", false); 
       mongoTemplate.updateFirst(query1, update1, Customer.class); 
相關問題