Проблема сопоставления дочерних объектов Jpa - PullRequest
0 голосов
/ 18 ноября 2018

В моем приложении JPA из многих дочерних объектов только первый дочерний объект (film_actor) отображается на весь родительский объект (актер).

Сущность 1

 @Component
 @Entity
 @JsonIgnoreProperties
 public class Actor {

 @Id
 @Column(name = "actor_id") 
 public String actorId; 

 @Column(name = "first_name")
 public String fName;

 @Column(name = "last_name")
 public String lName;

 @Column(name = "last_update")
 public String lastUpdate;  

 @OneToOne(mappedBy="actor")
 @JsonManagedReference
 public FilmActor filmActor;
 } 

Сущность 2

@Component
@Entity
@JsonIgnoreProperties
public class FilmActor {

@Id
@Column(name="actor_id")
public String actorId;

@Column(name="film_id")
public String fId;

@Column(name="last_update")
public String lastUpdate;

@OneToOne()
@JoinColumn(name="actor_id")    
@JsonBackReference               
public Actor actor; 
}

Операция Jpa

@Service
public class RestService {
@Autowired
public EntityManager em;
public ResponseObject getDetails(Actor actor) {
    Query q = em.createQuery("select a,f from Actor a join a.filmActor f where a.actorId = :aid");
    List<Object[]> l = q.setParameter("aid", actor.getActorId()).getResultList();
    int i =0;
    System.out.println(l.size());
    Actor[] actArry = new Actor[l.size()];
    //FilmActor[] fa = new FilmActor[l.size()];
    for(Object[] o: l) {
        actArry[i] = (Actor) o[0];
        actArry[i].setFilmActor((FilmActor) o[1]);
        i++;
    } }

, отдельно запустив сгенерированный запрос гибернации в базе данных MySQL, он возвращает около 25 уникальных записей.Но, пытаясь с помощью приведенного выше кода, из 25 уникальных дочерних объектов объекта (film_actor), первый дочерний объект obj отображается на все остальные 24 неправильных родительских объекта объекта (актер).Есть ли что-нибудь, что мы можем сделать, чтобы сопоставить правильного потомка с его родительским объектом.

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