Как сохранить json в mongodb с помощью spring

271
15 марта 2017, 17:12

Есть пример кода, как можно его переделать под запись json?

 package hello;
import org.springframework.data.annotation.Id;

public class Customer {
    @Id
    public String id;
    public String firstName;
    public String lastName;
    public Customer() {}
    public Customer(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
    @Override
    public String toString() {
        return String.format(
                "Customer[id=%s, firstName='%s', lastName='%s']",
                id, firstName, lastName);
    }
}

package hello;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface CustomerRepository extends MongoRepository<Customer, String> {
    public Customer findByFirstName(String firstName);
    public List<Customer> findByLastName(String lastName);
}
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application implements CommandLineRunner {
    @Autowired
    private CustomerRepository repository;
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
    @Override
    public void run(String... args) throws Exception {
        repository.deleteAll();
        // save a couple of customers
        repository.save(new Customer("Alice", "Smith"));
        repository.save(new Customer("Bob", "Smith"));
        // fetch all customers
        System.out.println("Customers found with findAll():");
        System.out.println("-------------------------------");
        for (Customer customer : repository.findAll()) {
            System.out.println(customer);
        }
        System.out.println();
        // fetch an individual customer
        System.out.println("Customer found with findByFirstName('Alice'):");
        System.out.println("--------------------------------");
        System.out.println(repository.findByFirstName("Alice"));
        System.out.println("Customers found with findByLastName('Smith'):");
        System.out.println("--------------------------------");
        for (Customer customer : repository.findByLastName("Smith")) {
            System.out.println(customer);
        }
    }
}
Answer 1

У MongoTemplate есть метод executeCommand();

import com.mongodb.DBObject;
import com.mongodb.util.JSON;
class YourClass{
public void someMethod(){
        String s = "your raw mongo query";
        DBObject query = (DBObject) JSON.parse(s);
        mongoTemplate.executeCommand(query);
    }
}

Подробнее здесь: http://www.programcreek.com/java-api-examples/index.php?api=com.mongodb.CommandResult

Также есть библиотека Jongo, в принципе в этом ответе достаточно инфы: http://stackoverflow.com/questions/40623589/java-excute-mongodb-raw-query

READ ALSO
Ошибка &#171;cannot find symbol&#187; парсинге JSON

Ошибка «cannot find symbol» парсинге JSON

Подскажите, пожалуйста, в чем причина ошибкиПытаюсь запарсить JSON при помощи библиотеки GSOP

269
NoSuchFieldException

NoSuchFieldException

Помогите, что это за ошибка ? В android studio все запускается исправно, но после сборки и запуска, apk выдает этоЕсть подозрения на использование...

252
Как создать клон View?

Как создать клон View?

Как создать клон View?

262
Java WebSocket Jetty

Java WebSocket Jetty

Есть простенький веб сервер на Jetty, суть работы довольно простаКлиент посылает другому пользователю сообщение в виде json строки, серверобрабатывает...

259