0
Ich würde diese Abfrage in HQL gerne schreiben:Hibernate mehrere Unterabfragen mit DetachedCriteria
select DISTINCT * from transportation transp
inner join price p on p.transportationId = transp.transportationId
where p.sectionId = (select sec.sectionId from section sec where sec.lineId = (select l.lineId from line l where l.lineId = 1000000000))
Aber weiß nicht, Subqueries schreiben. Ich weiß, dass ich DetachedCriteria verwenden muss.
Eine andere Frage: Wenn wir diese Abfrage in nativen Abfrage (mit createSQLQuery) schreiben können, wie objet zu Transporteinheit zurück abgeben kann?
Dank
Meine Einheiten:
@Entity
@Table(name = "transportation")
public class Transportation implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "transportationId")
private Integer id;
@OneToMany(mappedBy = "transportation", fetch = FetchType.EAGER)
@JsonBackReference(value = "price-transportation")
private Set<Price> prices = new HashSet<Price>();
...
}
@Entity
@Table(name = "price")
public class Price implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "priceId")
private Integer id;
@ManyToOne(optional = false)
@JoinColumn(name = "transportationId")
@JsonManagedReference(value = "price-transportation")
private Transportation transportation;
...
}
@Entity
@Table(name = "section")
public class Section implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "sectionId")
private Integer id;
@ManyToOne(optional = false)
@JoinColumn(name = "lineId")
@JsonManagedReference
private Line line;
...
}
@Entity
@Table(name = "line")
public class Line implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "lineId")
private Integer id;
@OneToMany(mappedBy = "line", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JsonBackReference
private Set<Section> sections = new HashSet<Section>();
...
}