Ошибка Ebean Query после обновления версии Play - PullRequest
0 голосов
/ 23 апреля 2020

Я обновляю свои проекты Play Version с 2.2.2 до 2.3.1. После этого обновления запрос начал возвращать неожиданный результат.

@Entity
@Table(name = "table_num_one")
public class TableNumOne extends Model {

 private static final long serialVersionUID = 1L;

 public static class TABLE {
 public static final String TABLE_NUM_TWO = "tableNumTwos";
}

@Id
@Column(unique = true, nullable = false)
public String id;

@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL, mappedBy = "tableNumOne")
public List<TableNumTwo> tableNumTwos;

public static Finder<String, TableNumOne> find = new Finder<String, TableNumOne>. (String.class, TableNumOne.class);
}


@Entity
@Table(name = "table_num_two")
public class TableNumTwo extends Model {

  private static final long serialVersionUID = 2L;
  public static class TABLE {
  public static final String TABLE_NAME = "table_num_two";
  public static final String TABLE_NUM_ONE = "tableNumOne";
  public static final String TABLE_NUM_THREE = "tableNumThree";
  }

  @JsonIgnore
  @Id
  public int id;

  @JsonBackReference
  @ManyToOne(cascade = CascadeType.ALL)
  public AppResult tableNumOne;

  @JsonManagedReference
  @OneToMany(cascade = CascadeType.ALL, mappedBy = "tableNumTwo")
  public List<TableNumThree> tableNumThree;
 }


@Entity
@Table(name = "table_num_three")
public class TableNumThree extends Model {

 private static final long serialVersionUID = 3L;

 public static class TABLE {
  public static final String TABLE_NAME = "yarn_app_heuristic_result_details";
  public static final String TABLE_NUM_TWO = "tableNumTwo";
 }

 @JsonBackReference
 @ManyToOne(cascade = CascadeType.ALL)
 public TableNumTwo tableNumTwo;
}

и запрос

TableOne result = TableOne.find.select("*")
    .fetch(TableOne.TABLE.TABLE_NUM_TWO, "*")
    .fetch(TableOne.TABLE.TABLE.TABLE_NUM_TWO + "." + 
       TableNumTwo.TABLE.TABLE_NUM_THREE, "*")
    .where()
    .eq(TableNumOne.TABLE.ID, id)
    .order()
    .desc(id)
    .findUnique();

В результате все связанные строки TableNumTwo извлекаются, но строки для TableNumThree получает выборку, ранее использовавшуюся для успешной выборки. Пожалуйста, помогите с этим, у меня есть идея о том, как отладить это,

...