Hallo,
Ich hoffe mir kann einer weiterhelfen:
1. Mein Mapping sieht folgendermaßen aus:
ich habe eine Klasse Materialstandort die 1-n Mitarbieter mit ihren zugehörigen Lohn besitzt.
Auszug aus der Materialstandort - Klasse
Code:
@OneToMany(cascade = CascadeType.ALL)
@JoinTable(name = "MATERIALSTANDORT_MITARBEITER", joinColumns = { @JoinColumn(name = "MATERIALSTANDORT_ID", nullable = false) }, inverseJoinColumns = { @JoinColumn(name = "LOHN_ID", nullable = false) })
@MapKeyManyToMany(targetEntity = Mitarbeiter.class, joinColumns = { @JoinColumn(name = "MITARBEITER_ID", nullable = false) })
public Map<Mitarbeiter, Lohn> getMitarbeiter() {
return this.mitarbeiter;
}
Jetzt Möchte ich gerne ein Criteria schreiben, dass mir alle Materialstandorte ausgibt die einen bestimmten Mitarbeiter besitzen.
Das Criteria für die Abfrage der Löhne nach ihrer Währung habe ich hinbekommen:
Code:
final List<?> locations = (List<?>) session.createCriteria(
Materialstandort.class).createCriteria(
Materialstandort.MITARBEITER_PROPERTY).setFetchMode("lohn",
FetchMode.JOIN).add(
Restrictions.eq(Lohn.WAEHRUNG_PROPERTY, currency)).list();
aber für die Abfrage der Mitarbeiter leider nicht. Ich hoffe Ihr könnt mir weiterhelfen.
Gruß
Dennis