Как я могу получить родительский объект Entity из объекта SubEntity.
subEntityRepository.findById(id), а затем getEntity() возвращают объект сущности null.
@Entity
public class Entity {
@Id
private Long id;
@Reference
private List<SubEntity> subEntity;
public Building(List<SubEntity> subEntity) {
this.subEntity = subEntity;
}
//getters and setters
}
@Entity
public class SubEntity {
@Id
private Long id;
@Reference
private Entity entity;
//getters and setters
}
public interface EntityRepository extends DatastoreRepository<Entity, Long> {}
public interface SubEntityRepository extends DatastoreRepository<SubEntity, Long>{}
P.S. Это база данных Google DataStore! Ни OneToMany, ни другие аннотации JPA недоступны.
Извините, опечатка, это DatastoreRepository<SubEntity, Long>
может быть, "@OneToMany" в вашем классе сущностей вместо обоих @Reference
мне также любопытна эта аннотация @Reference! (верхняя ссылка?) Что такое ваш «поставщик jpa» и почему вы ожидаете, что это сработает?
Это платформа Google spring-cloud, она не поддерживает один ко многим
@Entity
@Table(name = "entity")
public class Entity {
@Id
private Long id;
@OneToMany(mappedBy = "entity")
private List<SubEntity> subEntity;
....
}
@Entity
@Table(name = "subEntity")
public class SubEntity {
@Id
private Long id;
@ManyToOne
@JoinColumn(name = "entity")
private Entity entity;
//getters and setters
}
Google DataStore — это база данных NoSQL, поэтому она не поддерживает аннотации ManyToOne, OneToMany или JoinColumn.
ваш subEntityRepo действительно является DatastoreRepository<Entity, Long>, а не DatastoreRepository<SubEntity, Long>?