我正在嘗試執行 JPQL 查詢,該查詢為我提供表中 PK 的最高 PK(https://drive.google.com/file/d/1_kaklkKdCbhT0-byqCtz6HgfluKKp8J-/view?usp=sharing)。這是我的查詢:
@Override
public int lireMaxPk(Class cl, String nomPkElement) throws MyDBException {
int nb = 1;
try {
String jpql = "SELECT max(e) FROM " cl.getSimpleName() " e";
Query query = em.createQuery(jpql);
nb = (int) query.getSingleResult();
} catch (Exception ex) {
throw new MyDBException(SystemLib.getFullMethodName(), ex.getMessage());
}
return nb;
}
該錯誤表明我的查詢語法錯誤。有人可以幫幫我嗎 ?謝謝您的幫助 :)
uj5u.com熱心網友回復:
Max 需要指定欄位名稱而不是表別名。
uj5u.com熱心網友回復:
謝謝您的意見 !它讓我解決了我的問題。我確實需要獲取我的物體類的 int ID 屬性。這是我的功能:
@Override
public int lireMaxPk(Class cl, String nomPkElement) throws MyDBException {
int nb = 1;
try {
String jpql = "SELECT max(e." nomPkElement ") FROM " cl.getSimpleName() " e";
Query query = em.createQuery(jpql);
nb = (int) query.getSingleResult();
} catch (Exception ex) {
throw new MyDBException(SystemLib.getFullMethodName(), ex.getMessage());
}
return nb;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424550.html
