视图上的Java HQL查询不会映射所有返回的行

时间:2015-11-19 17:11:39

标签: java mysql hql

我在MySQL中有一个视图,它在Schemas和Properties之间加入1- *。 视图工作正常。当我在MySQL工作台中运行查询时,我得到了预期的结果。

但是,当我使用HQL在我的Java程序中运行相同的查询时,将返回预期的行数,但只有第一行包含数据。第一行是正确的,内容方面。

我的代码相当简单(我希望......)。在调试中单步执行我可以看到queryResult.list有正确的#行,我希望为输入objectIdentifier(模式)返回,但只有第一行有on对象。其余的都是空的。每个连接属性应该有一行。正如我所说,行数是正确的。

    public List<SchemaAndPropertiesResolvedNames> getSchemaAndPropertiesResolvedNamesView(
    String schemaAndPropertiesResolvedNamesId, ServiceHeaderVO context)
    throws DALException {

List<SchemaAndPropertiesResolvedNames> result = new ArrayList();
try{
       Session session = sessionFactory.getCurrentSession();
       session.beginTransaction();
       String hql = "FROM SchemaAndPropertiesResolvedNames schemaandpropertiesresolvednames WHERE schemaandpropertiesresolvednames.objectIdentifier =:objectIdentifier";
       Query queryResult = session.createQuery(hql);
       queryResult.setParameter("objectIdentifier", schemaAndPropertiesResolvedNamesId);
       List<SchemaAndPropertiesResolvedNames> listrows = queryResult.list();
       Iterator iterator = listrows.iterator();          
       while (iterator.hasNext()) {
           SchemaAndPropertiesResolvedNames obj = (SchemaAndPropertiesResolvedNames) iterator.next();
           result.add(obj);
       }          
       session.getTransaction().commit();
       return result;

它似乎部分工作到它在queryResult中总是具有正确的行数(如果我尝试使用不同的objectIdentifiers作为输入)。只是他们没有与第一个人分开。

视图的内容是否导致此问题?

令人讨厌的是我可以宣誓它早些时候工作了。然后我继续在其他地方进行其他更改,但是当我再次测试它时就出现了这个问题。

有什么建议吗?这是我第一次使用HQL。

0 个答案:

没有答案