Skip to content

Update fails on DocumentReference annotated list #4041

Closed
@kusamau

Description

@kusamau

Assume the following class

@Document(collection = "testDocuments")
public class TestDocument {
    @Id
    private UUID id;

    @DocumentReference
    private List<TestDocument> children;
}

then the following test fails

    @Test
    void testDocumentChildrenTest(@Autowired MongoTemplate mongoTemplate) {
        TestDocument parent = new TestDocument();
        parent.setChildren(new ArrayList<>());
        mongoTemplate.save(parent);

        TestDocument child = new TestDocument();
        mongoTemplate.save(child);

        Query query = new Query(Criteria.where("id").is(parent.getId()));

        Update update = new Update();
        update.push("children").each(new Object[]{child});
        var result = mongoTemplate.update(TestDocument.class)
                .matching(query)
                .apply(update)
                .first();

        TestDocument updated = mongoTemplate.findOne(query, TestDocument.class);
        Assertions.assertEquals(1, updated.getChildren().size());
    }

An identical test, replacing @DocumentReference with @DBREF succeeds.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions