2012-04-30 75 views
0

我有一个映射存储过程空指针4

<sql-query name="sproc" callable="true" > 
    <return alias="suppliers" class="model.Supplier"> 
     <return-property name="name" column="CoName" /> 
    </return> 
    { call sproc(:p1,:p2,:p3} 
</sql-query> 

当作为命名查询执行和存储过程返回结果的话,query.list()将返回预期的结果,但是当存储过程返回没有结果当Hibernate尝试初始化实体返回时,我得到一个NPE。

我可以抓到n并返回一个空列表,但这并不好,还有什么我可以做的吗?

回答

1

根据此hibernate docs mssql存储过程必须返回结果集。在第16.2.2.1节中进一步说明你可以使用session.connection()。但我认为这不会有太大用处。因此处理空指针似乎是一个好方法。

编辑:

如果您正在使用session.connection(),你也可以返回@@ROWCOUNT如果输出的是,在过程中被用来获取行的数量变化的唯一的事情。 0表示没有返回