Предложите, у меня есть таблица "types" со структурой:
id | type | date
----------------------
1 | one | 2018-08-01
2 | two | 2018-08-03
3 | one | 2018-08-04
4 | two | 2018-08-05
Мне нужно получить последние записи (последние по дате) для каждого типа.У меня есть собственный запрос для этого:
SELECT id, type, max(date)
FROM types
GROUP BY type, id;
В результате у меня есть:
id | type | date
----------------------
3 | one | 2018-08-04
4 | two | 2018-08-05
Я хочу перевести этот запрос на язык запросов JPA.Как я могу это сделать?И это лучше, чем собственный запрос SQL?Если нет, то почему?Я хочу иметь возможность сделать запрос в репозитории Spring следующим образом:
public interface TypeRepository extends JpaRepository<Type, Long> {
@Query(value="...")
List<Type> findLastTypes();
}
Тип объекта:
@Entity
@Table(name = "types")
public class Type extends Identifiable<Long> {
private String type;
private LocalDateTime date;
public Type() {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false)
@Override
public Long getId() {
return super.id;
}
@Column(name = "type", nullable = false)
public String getType() {
return type;
}
@Column(name = "date", nullable = false)
public LocalDateTime getDate() {
return date;
}
// ... setters
}
Заранее спасибо