2016-09-25 20 views
0

我綁更新與休息的服務列表,而是InvalidDataAccessApiUsageException拋出:彈簧安置Hibernate的更新列表與PUT方法

Parameter value element [Sharing{uuid=af777b47-3dfc...updated=2016-05-04T10:37:29.000Z}] did not match expected type [java.util.UUID (n/a)] 

控制器:

@RequestMapping(value = "/updateChecked", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) 
public int update(@RequestBody SharingList shares){ 
    return this.sharingService.updateChecked(shares); 
} 

服務:

public int updateChecked(SharingList shares) { 
     int updated = sharingDao.setCheckedSharingFor(shares); 
     return updated; 
    } 

DAO:

@Modifying 
@Query("UPDATE Sharing s SET s.checked=1 WHERE uuid in :shares") 
int setCheckedSharingFor(@Param("shares") SharingList shares); 

SharingList:

public class SharingList extends ArrayList<Sharing> { 

}

有什麼不對嗎?

回答

1

這裏有

Sharing{uuid=af777b47-3dfc...updated=2016-05-04T10:37:29.000Z}] 
did not match expected type [java.util.UUID (n/a)] 

答案Hibernate不具有人工智能的理解,它應該從Sharing得到uuid

佛此查詢

@Query("UPDATE Sharing s SET s.checked=1 WHERE uuid in :shares") 

你應該提供的UUID集合作爲shares參數。