【问题标题】:Case Statement in hibernate criteria休眠条件中的案例陈述
【发布时间】:2017-09-27 11:39:44
【问题描述】:

我是hibernate 的新手,我有一个MySQL Query,我想使用Hibernate criteria 获得相同的输出

MySQL 查询:

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

我的休眠代码:

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。 有什么办法吗? 谢谢

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:

    虽然我没有测试这个 sn-p,但你可以尝试使用 CriteriaBuilder 类似的东西:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2010-10-30
      • 2016-05-13
      • 2016-02-21
      • 1970-01-01
      相关资源
      最近更新 更多