В настоящее время требуется наличие объекта - "приложение", которое имеет поля: "имя", "время загрузки" и "исполняемый файл".
В настоящее время база данных mongodb. Я хочу использовать документ
Class Application {
String id;
String name;
String type;
Date uploadTime;
GridFSDBFile executeFile;
}
Слой Дао, когда я пишу сохранение, я обнаруживаю, что не могу напрямую связать файл GridFSDB с документом. Мне нужно сначала использовать GridFsTemplate.store, сохранить GridDBFile, затем использовать GridFsTemplate.findOne, найти его по имени и поместить объект, вложенный в документ приложения. Затем используйте MongoOperation, чтобы сохранить документ приложения.
try {
inputStream = new FileInputStream("C:/testing.app");
gridFsOperations.store(inputStream, "test.app", "jar");
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Query query = query(where("filename").is("test.app"));
GridFSDBFile gridFsDBFile = gridFsOperations.findOne(query);
Application application = new Application ();
application.setName( "test-app");
application.setType( "type", "Java");
application.setexecuteFile (gridFsDBFile);
applicationDao.save(application);
Есть ли способ просто позвонить MongoOperation? Если нет, я думаю, вызов GridFsTemplate.store и MongoOperation.save необходимо выполнить в транзакции. Я помню, что Mongo не поддерживает транзакции. Как это сделать? Проверять транзакцию только в Java-коде?