Java Hibernate条件DetachedCriteria

Java Hibernate条件DetachedCriteria,java,sql,hibernate,criteria,Java,Sql,Hibernate,Criteria,我对Hibernate有一个问题,因为我正在设置以下内容 DetachedCriteria timestampFilter = DetachedCriteria.forClass(FormParams.class) .add(Restrictions.eq("id.keyName","DataSetName")) .setProjection(Projections.property("id.keyName")); Session currentSession = sessionFactory.

我对Hibernate有一个问题,因为我正在设置以下内容

DetachedCriteria timestampFilter = DetachedCriteria.forClass(FormParams.class)
.add(Restrictions.eq("id.keyName","DataSetName"))
.setProjection(Projections.property("id.keyName"));
Session currentSession = sessionFactory.getCurrentSession();
Criteria query = currentSession.createCriteria(FormInstance.class)
.add(Property.forName("formParams").eq(timestampFilter))

我希望它能够根据键名执行合理的查询,生成的SQL是:

batchjobpa4_.FORM_ID where this_.FORM_ID = (select this_.KEY_NAME as y0_ from az_alpha.FORM_PARAMS this_ where this_.KEY_NAME=?)


据我所知,它返回keyName字段,并将其与FORM_ID字段相等,FORM_ID字段是索引int,而keyName是字符串。如何使其等于正确的字段?

您能格式化您的代码段吗?@Vinit Prajapati已将其格式化。请检查此项:这并不能解决我的问题,因为我没有收到错误,返回的项只有0个,并且keyName不是一个数字,因此强制转换将无法工作,除非我读取的sql错误,它获取满足条件的keyName,并尝试查找与keyName匹配的ID。我希望select中的sql是select this。表格ID。。。。