Neo4j Cypher result as Map in Java

I would like to return a Cypher result as a Java Map.

I am able to return the result as a Map in Neo4j Browser like this:

MATCH (camera:Camera)-[:BELONGS_TO_IPU]->(ipu:Ipu)
WHERE ID(ipu) = 23
RETURN { id: camera.cameraSid,  camera: camera }

That results in:

  "id": 1001,
  "camera": {
    "name": "1001",
    "cameraSid": 1001,
    "ipuRecordId": 0,
    "uniqueIdentifier": "10011001"
  "id": 1,
  "camera": {
    "name": "1",
    "cameraSid": 1,
    "ipuRecordId": 0,
    "uniqueIdentifier": "11"

In the Java side, I am using Spring Data Neo4j and I am trying to fetch the Cameras like this:

@Transactional(readOnly = true)
@Query(" MATCH (camera:Camera)-[:BELONGS_TO_IPU]->(ipu:Ipu) " +
        "WHERE ID(ipu) = {0} " +
        "RETURN { id: camera.cameraSid,  camera: camera }")
Map<Long, Camera> findCamerasMapByIpu(Ipu ipu);

But what I get is this error:

Caused by: org.springframework.dao.IncorrectResultSizeDataAccessException: Incorrect result size: expected at most 1

Is it possible to do what I am trying to do? Or I will have to fetch all the Cameras and then create the Map by myself?