Строка с указанным идентификатором не существует: странное поведение при изменении отношения ManyToMany с ленивого на нетерпеливого - PullRequest
0 голосов
/ 25 сентября 2019

Я сталкиваюсь со странным поведением, когда пытаюсь загрузить сущность, и получаю следующее исключение

  org.springframework.orm.hibernate4.HibernateObjectRetrievalFailureException: 
    No row with the given identifier exists: [com.xxx.entity.Role#4545]

Мои спящие сущности выглядят настолько сложными, что я надеюсь, что смогу сделать их максимально простыми:

@Entity
class Employee {   
   @ManyToMany
   private List<BB> bbList = new ArrayList<>();
}

@Entity
class BB extends CC{

}

@Entity
@Inheritance(strategy = JOINED)
abstract class CC {
   @ManyToOne(optional = false)
   @JoinColumn(name = "ID_XXX_DIM", nullable = false)
   private Dimension dimension;
}

@Entity
class Dimension {
  @ManyToMany(fetch = FetchType.EAGER)
  private List<Role> roles = new ArrayList<Role>();
}

Я пытаюсь составить список Employee объектов, используя критерии гибернации.Но это работает, только если я изменяю

@ManyToMany(fetch = FetchType.EAGER)
private List<Role> roles = new ArrayList<Role>();

на

@ManyToMany(fetch = FetchType.LAZY)
private List<Role> roles = new ArrayList<Role>();

. Можете ли вы сказать мне, почему я получаю исключение при использовании свойства eager

    org.springframework.orm.hibernate4.HibernateObjectRetrievalFailureException: 
No row with the given identifier exists: [com.xxx.entity.Role#4545]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...