java - 如何执行 HibernateQuery

标签 java hibernate querydsl

我正在从 C# 转向 java,这是我第一次尝试实际编写一些东西,我正在尝试设置我的数据层,但我认为我缺少像 .NET 中的 LINQ to SQL 中的 DataContext 这样的东西

我正在尝试使用 Hibernate 查询数据库,但似乎我错过了一些东西,我下载了 Hibernate 4 和 QueryDSL 来进行类型安全查询。

接下来,我连接到我的 postgreSQL 数据库并使用 Dali 生成 DAO 对象(我认为?在菜单中我从表中选择了 JPA 实体),编写了我需要的查询,但我不确定我必须在哪个对象上执行查询(某些对象)比如连接管理器之类的?)

我认为我在这里遗漏了一些东西:

EmployeesRepository repo = new EmployeesRepository();
List<Employees> employees = repo.GetByName("Steve");
Employees s = employees.get(0);
String g = s.getName();

我的实体存储库:

public class EmployeesRepository {

    public List<Employees> GetByName(String ename)
    {
        HibernateQuery qry = createQuery(employees);
        qry.where(employees.name.like(ename));
        return qry.list(employees);
    }

    private HibernateQuery createQuery(QEmployees employee)
    {
        return new HibernateQuery().from(employee);
    }
}

我得到:

java.lang.UnsupportedOperationException:分离查询中没有可用的 session

最佳答案

在执行查询之前,您需要创建/打开一个 hibernate session 。

示例:

Session session = HibernateUtil.getSessionFactory().openSession();

完成查询执行后,需要关闭。

session.close();

这里是step by step example .

注意:您正在使用的 hibernate 版本可能与上面示例中描述的 hibernate 版本不匹配,您可能需要对其进行调整。

关于java - 如何执行 HibernateQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669629/

相关文章:

spring-data - QueryDSL - 添加子查询到 FROM 语句

java - 如何根据层次结构级别对 SQL 请求结果进行排序

java - 如何查找数据是英文还是中文

java - 程序未正确循环

java - 使用 querydsl 模拟数据库查询 - 可选问题

hibernate - Grails 事务 : duplicate data where there shouldn't be any

java - Querydsl 从 Maven 依赖项生成实体

spring - 如何在 QueryDSL Web 中使用不同的运算符?

java - 我们应该在 hibernate 中创建域类时实现 Serialized 接口(interface)吗

java - 当添加新实体时,Hibernate 可在服务器上运行,但不能在 Eclipse 中运行