2012-11-20 11 views
6

wygląd lubi Hibernate nie ma tej składni, tak jest? enter image description hereJak używać składni mysql takich jak ifnull (max (Id), 0) w 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; 
    } 
} 
+1

Co to jest błąd masz? Napisz to proszę. –

+0

Czy 'empId' może być' NULL'? – zerkms

+0

Btw, twoja funkcja nie ma większego sensu - DB powinna zachować sekwencje, a nie swoją aplikację. – zerkms

Odpowiedz

11

Istnieje kilka problemów z tym ....

Niezależnie jednak kod byłby ...

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

    return max + 1; 
} 
+0

dziękuję za odpowiedź. – user189297

+0

dziękuję za odpowiedź .. – Annu