ссылкаизменить поле из объекта и сохранить его при сохранении содержащего объекта - PullRequest
0 голосов
/ 21 октября 2019

Я использую Objectify для Google Cloud Datastore.

Я смотрю на Ref<?> и пытался выяснить, могу ли я изменить свойство объекта с помощью этой аннотации, но оно не сохраняетсяв моем хранилище данных.

Пример:

У меня есть эти классы, я исключу установщики и получатели.

@Entity
class Car {
    @Id Long id;
    @Load Ref<Person> driver;    // Person is an @Entity
}

class Person {
   @Id Long id;
   String name;
}

Если я сделаю это

Car car = new Car();
car.driver = Ref.create(driverKey);
ofy().save().entity(car).now();

Car fetched = ofy().load().entity(car).now();
fetched.driver.get().setName("Pepito");
ofy().save().entity(car).now();

Это не изменит имя Person в базе данных.

Есть ли способ добиться этого?

Спасибо.

1 Ответ

1 голос
/ 21 октября 2019

Ссылки - это просто ссылки на отдельные сущности с разными жизнями. Каскадного сохранения нет. Если вы хотите сохранить драйвер, сделайте это явно.

...