как решить org.springframework.dao.DuplicateKeyException? при добавлении нескольких JSON документов в MongoDB через почтальона - PullRequest
0 голосов
/ 03 апреля 2020

Класс контроллера

package com.access6.controller;    
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;    
import com.access6.Model.User;
import com.access6.Repository.FlipkartRepo;

@RestController
public class OrderController {

    @Autowired
    private FlipkartRepo fr;       

    @PostMapping("/placeOrder")
    public String placeOrder(User u) {
        fr.save(u);
        return "Sucessful...";          
    }


    @GetMapping("/getUserByNmae/{name}")
    public List<User> getUserByName(@PathVariable String name) {
        return fr.findByName(name);
    }

    @GetMapping("/getUserByCity/{city}")
    public List<User> getUserByAddress(@PathVariable String city) {
        return fr.findBycity(city);
    }
}

Класс модели

Пользователь

package com.access6.Model;    
import java.util.List;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
@Document(collection = "Order_Db")
public class User {
    @Id
private int id;
private String name;
private String gender;
private List <Product>products;
private Address address;

public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getGender() {
    return gender;
}
public void setGender(String gender) {
    this.gender = gender;
}
public List<Product> getProducts() {
    return products;
}
public void setProducts(List<Product> products) {
    this.products = products;
}
public Address getAddress() {
    return address;
}
public void setAddress(Address address) {
    this.address = address;
}
@Override
public String toString() {
    return "User [id=" + id + ", name=" + name + ", gender=" + gender + ", products=" + products + ", address="
            + address + "]";
}

}

Продукт

package com.access6.Model;
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Product {
private String proNmae;
private int quantity;
private int price;
}

Адрес

package com.access6.Model;    
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Address {
private String city;
private String state;
private int pin;
}

Интерфейс репозитория

package com.access6.Repository;
import java.util.List;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import com.access6.Model.User;

public interface FlipkartRepo extends MongoRepository<User, Integer> {

    List<User> findByName(String name);

    @Query("{'Address.city':?0}")
    List<User> findBycity(String city);

}

Application.properties

spring.data.mongodb.host=localhost
spring.data.mongodb.database=Flipkart
spring.data.mongodb.port=27017

PostMan Я передаю данные через почтальона в формате JASON, при передаче параметров "id" публикуется как ноль и при вводе другой идентификатор данных снова будет равен нулю. в mongoDB сохраняется только «id», все остальные данные не были обнаружены почтальоном

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...