0

我从 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:分离查询中没有可用的会话

4

1 回答 1

2

您需要在执行查询之前创建/打开休眠会话。

例子:

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

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

session.close();

这是一步一步的例子

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

于 2012-12-02T13:18:37.660 回答