2016-07-04 10 views

Antwort

0

Es wird eine Ausnahme hier ist der Fluss von Methoden:

template.insert(object) 
| 
| 
templateinsert(Object objectToSave, String collectionName) 
| 
| 
protected <T> void doInsert(String collectionName, T objectToSave, MongoWriter<T> writer) 
| 
| 
protected Object insertDBObject(final String collectionName, final DBObject dbDoc, final Class<?> entityClass) 
| 
| 

Hier ist der Quellcode für insertDBObject

protected Object insertDBObject(final String collectionName, final DBObject dbDoc, final Class<?> entityClass) { 
    if(LOGGER.isDebugEnabled()) { 
     LOGGER.debug("Inserting DBObject containing fields: {} in collection: {}", dbDoc.keySet(), collectionName); 
    } 

    return this.execute(collectionName, new CollectionCallback() { 
     public Object doInCollection(DBCollection collection) throws MongoException, DataAccessException { 
      MongoAction mongoAction = new MongoAction(MongoTemplate.this.writeConcern, MongoActionOperation.INSERT, collectionName, entityClass, dbDoc, (DBObject)null); 
      WriteConcern writeConcernToUse = MongoTemplate.this.prepareWriteConcern(mongoAction); 
      WriteResult writeResult = writeConcernToUse == null?collection.insert(new DBObject[]{dbDoc}):collection.insert(dbDoc, writeConcernToUse); 
      MongoTemplate.this.handleAnyWriteResultErrors(writeResult, dbDoc, MongoActionOperation.INSERT); 
      return dbDoc.get("_id"); 
     } 
    }); 
} 

die Ausnahme ausgelöst wird, wenn Sie schreiben ausfällt, sind Sie Runtime-Ausnahme . Runtime Exceptions werden von MongoExceptionTranslator übersetzt. So ist jeder Einsatz, der keine Ausnahme auslöst, erfolgreich.

+0

Aber Dokument sagt nicht, dass es Ausnahme oder ähnliches wirft. – andyPaul

+0

Hier ist die Tinte für grepcode http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.data/spring-data-mongodb/1.7.2.RELEASE/org/springframework/data/mongodb /core/MongoTemplate.java –

+0

Einige Umstände würden mongo nicht schreiben die Daten sind 1.Disk Speicherplatz voll, 2. Server herunter 3. Zugriffsrechte Wir können leicht reproduzieren 1 und 3. Führen Sie den Code legte den Debugger, bevor Einfügung passiert . Die Codeausführung wird gestoppt. Beenden Sie den Monogo-Server oder entziehen Sie dem Benutzer die Schreibrechte und fahren Sie fort. Es sollte eine Ausnahme auslösen. –

Verwandte Themen