Невозможно вставить встроенную сущность, используя данные Spring, в mongodb - PullRequest
0 голосов
/ 11 мая 2018

Итак, я хочу добавить некоторые данные, но они

{
    "_id" : ObjectId("5a0c6748fb3aac66aafe26d7"),
    "picture" : "http://placehold.it/150x150",
    "name" : "Cablam",
    "email" : "leilaware@cablam.com",
    "city" : "Rabat",
    "location" : {
            "type" : "Point",
            "coordinates" : [
                    -6.75778,
                    33.97468
            ]
    }
}

теперь, когда я пытаюсь вставить только нормальный объект, это работает, но когда я пытаюсь использовать объект, который содержит другой объект, чтобы иметь встроенный документ для ОДНОГО -Отношения «один к одному» не работают, я нахожу коллекцию пустой

для весенней конфигурации в классе XML

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <!-- <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> -->
    <constructor-arg name="mongo" ref="mongo"/>
    <constructor-arg name="databaseName" value="yourdb"/>
</bean>

<!-- Factory bean that creates the Mongo instance -->
<bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
  <property name="host" value="localhost"/>
</bean>

, где я хочу сохранить данные

@Repository
public class CustomerDAOImpl implements CustomerDAO {

@Autowired
private MongoTemplate mongoTemp ;

@Override
public List<Customer> getCustomers() {


     MongoOperations mongoOperation ; //= (MongoOperations) appContext.getBean("mongoTemplate");


    Location location = new Location(
            "point", 
            new ArrayList<Double>( Arrays.asList(11111111.1, 00000000.0))
            );

    Shop shop = new Shop("pic link", "superName","superEmail","supercity",location,true );

    // save
    mongoOperation = (MongoOperations) mongoTemp;

    mongoOperation.save(shop);

    //shopRepository.insert(shop);
    // now user object got the created id.
    System.out.println(">>>>>>>> >>> >> 1. use1r : " + shop);
  ....

Модель / сущность

@Document(collection="shops")
public class Shop {

@Id
private String id;
private String picture;
private String name;
private String email;
private String city;

//@GeoSpatialIndexed(type=GeoSpatialIndexType.GEO_2DSPHERE)
private Location location;

private Boolean isLiked;

/*private Date shownAfter;*/


public Shop(String picture, String name, String email, String city, Location location, Boolean isLiked/*, Date shownAfter*/) {
    super();
    this.picture = picture;
    this.name = name;
    this.email = email;
    this.city = city;
    this.location = location;
    this.isLiked = isLiked;
    //this.shownAfter = shownAfter;
}
...
}

может мне что-нибудь помочь в этом

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