给我最高价值的 JPQL 查询
JPQL query that give me the highest value
我正在尝试执行一个 JPQL 查询,该查询为我的 table (https://drive.google.com/file/d/1_kaklkKdCbhT0-byqCtz6HgfluKKp8J-/view?usp=sharing) 中的 PK 提供最高的 PK。这是我的查询:
@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;
}
错误提示我查询的语法错误。有人可以帮帮我吗 ?感谢您的帮助:)
Max 需要指定字段名称而不是 table 别名。
感谢您的意见!它让我解决了我的问题。我确实需要获取我的实体 class 的 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;
}
我正在尝试执行一个 JPQL 查询,该查询为我的 table (https://drive.google.com/file/d/1_kaklkKdCbhT0-byqCtz6HgfluKKp8J-/view?usp=sharing) 中的 PK 提供最高的 PK。这是我的查询:
@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;
}
错误提示我查询的语法错误。有人可以帮帮我吗 ?感谢您的帮助:)
Max 需要指定字段名称而不是 table 别名。
感谢您的意见!它让我解决了我的问题。我确实需要获取我的实体 class 的 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;
}