0

我需要在 java 代码中调用存储过程(entityManager仅可用)。这个存储过程应该在某个hbm.xml文件中定义。

我没有找到任何解决方案。

在hibernate文档中我发现它应该以这种方式声明。

<sql-query name="InsertTestCaseData" callable="true">
    { ? = call dbo.InsertTestCaseData(:ID) }
</sql-query>

此过程仅返回结果代码 ( mssql server)。我应该如何在映射文件中描述它?如果此过程返回某个列的某些值,如何处理,我应该 <return-property>hbm文件中定义吗?

我只有一个entityManager对象。没有类似的方法getNamedQuery()

可以用什么方法代替?

映射文件应该放在哪里?它可以是仅带有查询的单独文件吗?

4

1 回答 1

0

这里有几个例子给你,但这里 是你如何使用实体调用存储过程

// This stored procedure returns a result set and has one input parameter.
@NamedStoredProcedureQuery(
    name = "ReadAddressById",
    resultClasses = Address.class,
    procedureName = "READ_ADDRESS",
    parameters = {
        @StoredProcedureParameter(mode=IN, name="P_ADDRESS_ID", type=Long.class)
    }
)
@Entity
public class Address {
  ...
}
于 2013-06-11T15:33:56.717 回答