![](/img/trans.png)
[英]how to pass parameters to a stored procedure using @NamedNativeQuery in spring hibernate
[英]Pass parameters in a stored procedure in Spring
我的sql數據庫中有一個存儲過程,我想使用@Procedure
批注從Java程序(帶有spring)中調用它。 到現在為止還挺好。
我用@Procedure(procedureName = "my_procedure")
調用該過程。 問題是我想在過程中傳遞2個參數。
有沒有一種方法可以使用@Procedure
批注來實現?
非常感謝你。
首先,您需要在實體上聲明過程:
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = "my_procedure",
procedureName = "schema.my_procedure",
parameters = {
@StoredProcedureParameter(
mode = ParameterMode.IN,
name = "first",
type = String.class),
@StoredProcedureParameter(
mode = ParameterMode.IN,
name = "second",
type = String.class)
},
@StoredProcedureParameter(
mode = ParameterMode.OUT,
name = "result",
type = Long.class)
}
)
})
其次,在您的存儲庫中引用它
@Procedure(name = "my_procedure")
long getResult(@Param("first") String first, @Param("second") String second);
好的,這是解決方案!
如果名稱相同,則@Procedure批注可用於映射具有存儲過程的方法,如果類型相同,則將方法變量映射到過程參數足夠聰明。 但是,要將更改提交給db,必須使用Transactional批注。 恩。
@Procedure
@Transactional
void MyProcedureName(Integer par1 , Integer par2);
上面的代碼將從數據庫中調用過程MyProcedureName,並將par1和par2映射到MyProcedureName參數1和參數2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.