调用存储过程
首先定义一个存储过程,用来生成定单号
CREATE PROCEDURE [dbo].[usp_GenerationCardNo]
@AutoGrowType tinyint,
@NewCardNo varchar(20) OUT
AS
BEGIN
Select @NewCardNo=‘1000001’
END
然后把存储过程挂到任意一个Entity上
@Entity
//可以随意挂到任一表上
@Table(name = "Order", schema = "dbo")
@NamedStoredProcedureQueries(NamedStoredProcedureQuery(
name = "usp_GenerationCardNo",
//存储过程名字
procedureName = "usp_GenerationCardNo",
parameters = [
//输入参数
StoredProcedureParameter(
name = "@AutoGrowType",
mode = ParameterMode.IN,
type = Byte::class
),
//输出参数
StoredProcedureParameter(
name = "@NewCardNo",
mode = ParameterMode.OUT,
type = String::class
)
]
))
class OrderEntity {}
使用EntityManager来调用存储过程
//创建存储过程查询
val procedureQuery = entityManager.createNamedStoredProcedureQuery("usp_GenerationCardNo")
//设置输入参数
procedureQuery.setParameter("@AutoGrowType",4.toByte())
procedureQuery.execute()
//获取输出参数
val orderId = procedureQuery.getOutputParameterValue("@NewCardNo")
println(orderId)