2017-09-27 228 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"); 

一些帮助/信息可以在这里找到: