使用PUT方法的Spring Rest Hibernate更新列表

时间:2016-09-25 20:09:01

标签: spring hibernate rest

我想用休息服务更新List,但抛出InvalidDataAccessApiUsageException:

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 个答案:

答案 0 :(得分:1)

这里有答案

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

Hibernate没有人工智能来理解它应该从uuid获得Sharing

这个查询

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

您应该提供UUID作为shares参数的集合。