java - hibernate 标准中的案例声明

标签 java hibernate hibernate-criteria

我对 hibernate 很陌生,我有一个 MySQL 查询,我想使用 Hibernate 标准 获得相同的输出

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();

如何在上述代码中添加案例条件。 有什么办法吗? 谢谢

最佳答案

虽然我没有测试此代码片段,但您可以尝试使用 CriteriaBuilder ,如下所示:

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

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

关于java - hibernate 标准中的案例声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46446934/

相关文章:

java - 中级Java/Python开发人员的项目构想

java - 组织.hibernate.LazyInitializationException : could not initialize proxy - no Session?

java - Hibernate Criteria 查询连接示例

grails - Grails 2.4.4 Criteria query issue,没有这样的属性:Criteria类的规范:grails.orm.HibernateCriteriaBuilder

java - 是否有使用消息参数作为属性创建 JSON 对象的 Logback 布局?

java - 使用 javafx 播放音效/音乐的最佳选择是什么?

Java注解: at variable initialization,但不能赋值?

java - 如何在 netbeans 7.4 中删除 hibernate 中的警告

java - 创建名称为 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration' 的 bean 时出错 :

hibernate - Hibernate Criteria API 是否稳定以备将来使用?