Я попытался установить двунаправленное отношение @OneToMany
(одна авиакомпания имеет много приложений) при запуске airlineRepository.findAll()
вместо одного выбора всех запросов в режиме гибернации делает это навсегда и вылетает приложение:
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
Hibernate: select submitteda0_.user_id as user_id3_1_0_, submitteda0_.id as id1_1_0_, submitteda0_.id as id1_1_1_, submitteda0_.airline_id as airline_2_1_1_, submitteda0_.user_id as user_id3_1_1_, airline1_.id as id1_0_2_, airline1_.description as descript2_0_2_, airline1_.title as title3_0_2_ from applications submitteda0_ left outer join airlines airline1_ on submitteda0_.airline_id=airline1_.id where submitteda0_.user_id=?
До Я сталкиваюсь с этим:
2020-04-27 19:11:53.376 ERROR 4344 --- [0.4-8080-exec-5] o.s.t.i.TransactionInterceptor : Application exception overridden by rollback exception
java.lang.StackOverflowError: null
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:369) ~[postgresql-42.2.11.jar:42.2.11]
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:159) ~[postgresql-42.2.11.jar:42.2.11]
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:109) ~[postgresql-42.2.11.jar:42.2.11]
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-3.4.2.jar:na]
Как я могу это исправить?
Авиакомпания. java
@ToString
@EqualsAndHashCode
@Builder
@Getter
@Setter
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "airlines")
public class Airline {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "title")
private String title;
@Column(name = "description")
private String description;
@OneToMany(mappedBy = "airline", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Application> applications = new HashSet<>(); //Applied user applications, also includes exams
}
Приложение. java
@Data
@Entity
@Table(name = "applications")
public class Application {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user; //User submitted applied
@ManyToOne
@JoinColumn(name = "airline_id")
private Airline airline; //Airline applied to
public Application() {
}
}
Отношение в пользователе. java
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Application> submittedApplications = new HashSet<>();