У меня следующая проблема.Я хочу выполнить этот запрос в моем весеннем загрузочном проекте.Я попытался сделать это с помощью аннотации запроса в интерфейсе репозитория JPA.Но он говорит «неожиданный ВЫБОР» во внутреннем соединении.Когда я выполню этот запрос непосредственно в моей базе данных MySQL, он будет работать.
У кого-нибудь есть решение по этому делу?
Это мой запрос:
SELECT t1.*
FROM az_manager t1
INNER JOIN
(
SELECT maID, MAX(datum) AS max_date
FROM az_manager
WHERE maID IN (7243, 1)
GROUP BY maID
) t2
ON t1.maID = t2.maID AND t1.datum = t2.max_date
WHERE
t1.maID IN (7243, 1);
Это мой класс:
@Entity
@Table(name = "az_manager")
@IdClass(TnsWorkingHoursManagerId.class)
@Getter
@Setter
public class TnsWorkingHoursManager extends TnsObject{
@Id
@Column(name = "datum")
private long date;
@Id
@Column(name = "maid")
private int employeeId;
@Column(name = "typid")
private int typeId;
@Column(name = "bemerkung")
private String comment;
@Column(name = "host")
private String host;
@Column(name = "modus")
private byte mode;
public TnsWorkingHoursManager() {
}
}
Вот моя попытка с репозиторием JPA:
@Query(value = "SELECT azm1 FROM az_manager azm1 INNER JOIN (SELECT maID, MAX(datum) AS max_date FROM az_manager WHERE maID IN(:userIds) GROUP BY maID) azm2 ON azm1.maID = azm2.maID AND azm1.datum = azm2.max_date WHERE azm1.maID IN (:userIds)")
List<TnsWorkingHoursManager> getLastEntries(@Param("userIds") ArrayList<Integer> userIds);
При втором выборе он говорит "ВЫБРАТЬ" неожиданный "