2012-11-20 23 views
6

trông giống như Hibernate không có cú pháp này, đúng không? enter image description hereCách sử dụng cú pháp mysql như ifnull (max (Id), 0) trong 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

là lỗi nào bạn nhận được gì? Hãy đăng nó. –

+0

Có thể 'empId' là' NULL' không? – zerkms

+0

Btw, chức năng của bạn không có ý nghĩa nhiều - DB nên duy trì chuỗi chính nó, không phải ứng dụng của bạn. – zerkms

Trả lời

11

Có một vài vấn đề với điều này ....

Bất kể tuy nhiên, các mã sẽ là ...

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

    return max + 1; 
} 
+0

cảm ơn về câu trả lời của bạn. – user189297

+0

cảm ơn bạn đã trả lời .. – Annu

Các vấn đề liên quan