我的sql数据库中有一个存储过程,我想使用@Procedure
注释从Java程序(带有spring)中调用它。到目前为止,一切都很好。
我用@Procedure(procedureName = "my_procedure")
调用该过程。问题是我想在过程中传递2个参数。
有没有一种方法可以使用@Procedure
批注来实现?
非常感谢。
答案 0 :(得分:2)
首先,您需要在实体上声明过程:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/settingsText"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textAllCaps="true"
android:text="Preference 1"/>
</android.support.constraint.ConstraintLayout>
第二,在您的存储库中引用它
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:id="@+id/settingsTextContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:textAllCaps="true"
android:background="@android:color/background_dark"
android:textColor="@android:color/background_light"
android:text="Category 1"/>
</android.support.constraint.ConstraintLayout>
答案 1 :(得分:1)
好,这是解决方法!
如果名称相同,则@Procedure批注可用于映射具有存储过程的方法,如果名称相同,则将方法变量映射到过程参数足够聪明。但是,要将更改提交给db,必须使用Transactional批注。 例如。
@Procedure
@Transactional
void MyProcedureName(Integer par1 , Integer par2);
上面的代码将从数据库中调用过程MyProcedureName,并将par1和par2映射到MyProcedureName参数1和参数2。