2017-09-27 226 views
0

我很新的hibernate我有一個MySQL Query,我想用Hibernate criteriaCase語句

MySQL查詢才達到相同的輸出:

SELECT *, 
(case when status = 'Active' 
    then 'Can Login' 
    else 'Not able to login' end) as LoginStatus 
FROM UserLoginTable; 

我的Hibernate代碼:

SessionFactory sessionFactory = HibernateUtility.getSessionFactory(); 
Session session_hiber = sessionFactory.openSession(); 

session_hiber.beginTransaction(); 
Criteria criteria; 

    criteria = session_hiber.createCriteria(UserLoginTable.class); 
    List<UserLoginTable> myUserList = (List<UserLoginTable>) 
    criteria.list(); 

如何在上面的代碼中添加Case criteria。 有什麼辦法嗎? 感謝

回答

0

雖然我沒有測試這個片段中,你可以嘗試使用CriteriaBuilder是這樣的:

CriteriaBuilder cb = session_hiber.getCriteriaBuilder(); 
cb.selectCase() 
    .when(cb.equal(path.get("status"), "Active"), "Can Login") 
    .otherwise("Not able to login") 
    .alias("LoginStatus"); 

一些幫助/信息可以在這裏找到: