我的hibernate文件中有以下函数:
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());
}
现在,写这个就是打败了hibernate的目的,因为我必须实际指定查询。我有什么方法可以隐含地这样做吗?
假设我的模型文件是正确的。它有四列:员工,雇主,年龄和性别。请帮我解决这个问题。
答案 0 :(得分:0)
使用此:
sess.createQuery("from Employee e where e.employer = :emp").
setEntity("emp", anEmployerInstance).list();
其中Employee
是您实体的名称,employer
是Employee
类中与Employer
数据库字段emp
匹配的属性的名称是一个任意名称,anEmployerInstance
是Employer
类的实例。
我认为在这个答案中Employer
是另一个实体,所以我使用了setEntity()
方法。但我无法确定,因为我无法访问Employee
实体代码。