Ich habe eine Tabelle mit der folgenden Struktur:JPA letzte Zeile pro Gruppe
Audit Tabelle
| ID | User | Log In Date | Other Info e.g. IP |
|-----------|-----------|---------------|--------------------------|
| 0 | 1 | 2017/11/10 | ... |
| 1 | 1 | 2017/12/10 | ... |
| 2 | 2 | 2017/10/10 | ... |
| 3 | 3 | 2017/09/08 | ... |
In meinem AuditRepository
Ich mag würde ein Verfahren zu schaffen, das die Audit
mit den jüngsten Auszug/spätestes Anmeldedatum für jeden Benutzer
Audit
@Entity
@Table(name = "Audit")
public class Audit {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private Instant loginDate
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "User")
private User user;
// Other fields
}
Wie kann ich schreiben ein Repository @Query
, die dies erreichen können?
Bisher habe ich versucht
@Query(value =
"SELECT a FROM Audit a " +
"LEFT JOIN Audit a1 ON a.loginDate > a1.loginDate AND a.user = a1.user " +
"WHERE a1.user IS NULL"
)
Aber ich habe eine Ausnahme QuerySyntaxException: Path expected for join!
Welchen Provider verwenden Sie? – newOne
@newOne Springboots Spring Daten, die ich vermute, verwendet JPA/Hibernate unter der Haube – Edd