Вот ест у меня такой код:
| Код | @Entity @Table(name = "hibernate_corporation") public class HibernateCorporation { private static final long serialVersionUID = -581320191187294904L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Integer id; @Column(name = "name") private String name;
@ManyToOne @JoinColumn(name = "director") private HibernateCorporation director;
@OneToMany(mappedBy = "director", cascade = CascadeType.ALL) private Set<HibernateCorporation> subordinate;
public HibernateCorporation() { super(); }
public Integer getId() { return this.id; }
public void setId(Integer id) { this.id = id; } public String getName() { return this.name; }
public void setName(String name) { this.name = name; }
public HibernateCorporation getDirector() { return this.director; }
public void setDirector(HibernateCorporation director) { this.director = director; }
public Set<HibernateCorporation> getSubordinate() { return this.subordinate; }
public void setSubordinate(Set<HibernateCorporation> subordinate) { this.subordinate = subordinate; }
@Override public boolean equals(Object another) { if (another == null) { return false; } if (another instanceof DomainModel) { if (((DomainModel) another).getId() == null) { return false; } return ((DomainModel) another).getId().equals(this.getId()); } else { return false; } }
}
|
Hiberante пашет, все нормално. Но вот нада непер записат такой sql на hql:
| Код | SELECT c1.name FROM hibernate_corporation AS c1 LEFT JOIN hibernate_corporation as c2 ON c1.id = c2.director WHERE c2.id IS NULL;
|
Исползую MySQL. В консоли такой sql работает. Но как такой превратит в hql?
|