Mongodb Daten werden immer überschrieben

Raphael_

Aktives Mitglied
Hi,
ich habe eine Mongodb in Kombination mit einer Spring Boot Anwendung. Dort ist es eben so, dass man über einen endpoint einen "Ordner" in der Mongodb anlegen kann. Das ist halt einfach ein Objekt mit Eigenschaften wie bspw Name. Das erstellen des Ordners klappt auch schon, sobald man aber einen zweiten erstellt wird einfach der erste wieder überschrieben. Ich poste hier mal meinen Code:

Java:
@Document
@Data
@AllArgsConstructor
@Builder
public class Folder {
    @Id
    private String id;

    private SubDocument subDocument;
}


Code:
public interface FolderRepository
        extends MongoRepository<Folder, String> {
}

Code:
public void saveNewFolder(JwtAuthenticationToken principal, UUID uuid, String name) {

        Folder folder = Folder.builder()
                .id(SubExtractionService.getSub(principal))
                .subDocument(SubDocument.builder()
                        .name(name)
                        .uuid(String.valueOf(uuid))
                        .build())
                .build();
        folderRepository.save(folder);
    }

Code:
@Data
@AllArgsConstructor
@Builder
public class SubDocument {
    private String uuid;
    private String name;

}


Das ist mein Code und wenn man einen Ordner hinzufügt, sieht das dann so aus:

Code:
{
    _id: '43240899-4f46-40e5-ad60-e33b11fc335',
    subDocument: {
        uuid: 'ed92fe28-110f-4d5a-bd47-afc3f74aca8',
        name: 'test'
    },
    _class: 'com.dao.Folder.Folder'
}

Wenn ich jetzt einen zweiten Ordner hinzufüge wird dieser einfach überschrieben und ich komm einfach nicht drauf, woran das liegt.
 
Wahrscheinlich weil subextractionservice immer die selbe Id zurückgibt...
Ja, du hast recht, wenn ich da ne random id reinpacke klappt es, aber diese id muss halt "gleich" bleiben, da das die id des users ist. _id ist dafür da den identifizieren zu können. Ein User soll aber mehrere Ordner erstellen können. Also muss _id nach Erstellung eines Users gleich bleiben aber es sollen eben mehrere "Einträge" in subDocument existieren können.
 
Eine Entity hat Identität, die durch Angabe einer ID ausgedrückt wird. Ansonsten könnte man Objekte mit gleichem Inhalt nicht voneinander unterscheiden. Das Problem, das Du - soweit ich das sehe - hast, ist, dass Du einfach das bestehende MongoDB-Dokument mit neuem Inhalt überschreibst.
 

Neue Themen


Zurück
Oben