【发布时间】:2017-04-27 10:58:24
【问题描述】:
我的任务是将左外连接转换为内连接。我和休眠一起工作。 我有实体:
@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 e1 FROM Entity1 e1 inner join fetch e1.field e2 inner join fetch e2.field where e1.id = ?1
结果 SQL 是:
select ... from entity1 inner join entity2 on ... left outer join entity3_entity2 on ...
但我需要在没有任何 sql 查询的情况下使用内部连接获取 entity3 记录。有什么办法吗?
【问题讨论】:
-
嗨,Alexey,您在这种情况下是否得到重复的行?
标签: hibernate hql inner-join