如何在Hibernate中使用mysql的语法,如ifnull(max(Id),0)

use*_*297 7 java mysql hibernate

看起来喜欢Hibernate没有这种语法,那是对的吗?在此输入图像描述

public int MaxIdenx() {
    int max = 0;
    String hql = "select ifnull(max(empId),0)from Emp";
    Query query = session.createQuery(hql);
    List currentSeq = query.list();
    if (currentSeq == null) {
        return max;
    } else {
        max = (Integer) currentSeq.get(0);
        return max + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

Zut*_*tty 11

这有一些问题....

无论如何,代码将是......

public int MaxIdenx() {
    int max = (Integer)session
        .createQuery("SELECT COALESCE(MAX(empId), 0) FROM Emp")
        .uniqueResult();

    return max + 1;
}
Run Code Online (Sandbox Code Playgroud)