0

我的休眠文件中有以下功能:

try {
  SessionFactory sessFact = new Configuration()
  .configure("/org/test/tutorial/hibernate.cfg.xml").buildSessionFactory();
  Session sess = sessFact.openSession();
  Transaction tran = sess.beginTransaction();
  List<testModel> hostsInHostclass = sess.createSQLQuery("SELECT * FROM Employee where Employer like '"+ANY INPUT+"'").addEntity(tut_model.class).list(); 

    } catch (HibernateException he) {
        throw new DependencyException("DB Error: " + he.getMessage());
    }

现在,写它这违背了休眠的目的,因为我必须实际指定查询。有什么办法可以隐含地做到这一点?

假设我的模型文件是正确的。它有四列:雇员、雇主、年龄和性别。请帮我解决这个问题。

4

1 回答 1

0

用这个:

sess.createQuery("from Employee e where e.employer = :emp").
        setEntity("emp", anEmployerInstance).list();

其中Employee是您的实体的名称,是与DB 字段匹配的类中employer属性的名称,是任意名称并且是类的实例。EmployeeEmployerempanEmployerInstanceEmployer

我认为在这个答案中Employer是另一个实体,所以我使用了setEntity()方法。但我无法确定,因为我无法访问Employee实体代码。

于 2013-06-04T19:02:11.930 回答