Java 如何执行HibernateQuery

Java 如何执行HibernateQuery,java,hibernate,querydsl,Java,Hibernate,Querydsl,我将从C#转到java,这是我第一次尝试实际编写一些东西,我正在尝试设置我的数据层,但我想我缺少了一些东西,比如LINQ中的DataContext到.NET中的SQL 我试图使用Hibernate查询数据库,但似乎我遗漏了什么,我下载了Hibernate 4和QueryDSL以进行类型安全查询 接下来,我连接到我的postgreSQL数据库,并使用Dali生成DAO对象(我想?在菜单中,我从表中选择了JPA enteties),编写了我需要的查询,但我不确定必须对哪个对象执行查询(比如连接管理器

我将从C#转到java,这是我第一次尝试实际编写一些东西,我正在尝试设置我的数据层,但我想我缺少了一些东西,比如LINQ中的DataContext到.NET中的SQL

我试图使用Hibernate查询数据库,但似乎我遗漏了什么,我下载了Hibernate 4和QueryDSL以进行类型安全查询

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

我想我遗漏了一些东西:

EmployeesRepository repo = new EmployeesRepository();
List<Employees> employees = repo.GetByName("Steve");
Employees s = employees.get(0);
String g = s.getName();
EmployeesRepository repo=new EmployeesRepository();
列出员工=回购公司GetByName(“Steve”);
Employees=Employees.get(0);
字符串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);
    }
}
公共类员工职位{
公共列表GetByName(字符串名称)
{
HibernateQuery qry=createQuery(员工);
qry.where(employees.name.like(ename));
返回质量清单(员工);
}
私有HibernateQuery createQuery(QEmployees员工)
{
从(员工)返回新的HibernateQuery();
}
}
我得到:


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

执行查询之前,您需要创建/打开一个hibernate会话

例如:

Session session = HibernateUtil.getSessionFactory().openSession();
完成查询执行后,需要关闭

session.close();
这是


注意:您正在使用的与上述示例中描述的版本之间可能存在hibernate版本不匹配的问题,您可能需要对其进行检查。

您能给我举个例子说明如何做到这一点吗?我是否丢失了一些文件,比如某种配置?@user1010609:提供了一个示例链接,应该可以帮助您。谢谢,看起来不错。我希望不会有任何问题,因为我生成的DAO与教程中的略有不同。创建的会话将在HibernateQuery构造函数中使用:
new HibernateQuery(session)