私は左外部結合を内部結合に変換するタスクを持っています。私は休止状態で働いた。 私は実体があります休止中の内部結合
@Entity
@Table("entity1")
public Entity1{
@Id
private Integer id;
@ManyToOne(fetch = FetchType.EAGER)
private Entity2 field;
}
@Entity
@Table("entity2")
public class Entity2{
@Id
private String name;
@ManyToOne(fetch = FetchType.EAGER)
@JoinTable(name = "entity3_entity2",
joinColumns = @JoinColumn(name="entity2_name")
inverseJoinColumns = @JoinColumn(name = "entity3_name"))
private Entity3 field;
}
@Entity
@Table("entity3")
public class Entity3{
@Id
private String name;
@OneToMany
private Set<Entity2> field;
}
を私はHQL持っている:
select ... from entity1 inner join entity2 on ... left outer join entity3_entity2 on ...
しかし、私は、内側には任意のSQLクエリせずに参加してentity3のレコードを取得する必要があります。
SELECT e1 FROM Entity1 e1 inner join fetch e1.field e2 inner join fetch e2.field where e1.id = ?1
結果SQLです。それを行う方法はありますか?
ねえアレクセイは、あなたがこのシナリオで重複行を取得していますか? – PSabuwala