У меня есть объект с ленивыми отношениями, подобными этому:
@Getter
@Entity
@Table(name = "entity")
@SequenceGenerator(name = "seq_entity", sequenceName = "seq_entity", allocationSize = 1)
@DynamicUpdate
public class Entity {
@Id
@Column(name = "id_entity")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_entity")
private Long id;
@Setter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_relation1")
private Relation1 relation1;
@Setter
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_relation2")
private Relation2 relation2;
// ...
}
Когда я делаю запрос для загрузки других отношений, я должен указать их как:
return jpaQuery()
.select(qEntity)
.distinct()
.from(qEntity)
.innerJoin(qEntity.relation1).fetchJoin()
.leftJoin(qEntity.relation2).fetchJoin()
.fetch();
Но я хочу загрузить их без указания в левые и внутренние соединения для одного запроса ... Есть ли способ загрузить все в активном режиме для одного запроса?Можно ли деактивировать FetchType.LAZY
для одного запроса?
Я думаю о чем-то вроде
return jpaQuery()
.select(qEntity)
.distinct()
.from(qEntity)
.fetchEager();