我有一个带有参数@id的过程,我也在spring hibernate中调用@NamedNativeQuery,我想知道如何在@NamedNativeQuery的查询属性中的过程中传递参数
我的代码看起来像这样。
@NamedNativeQuery(name =“Callmyprocedure”,query =“{CALL sampleprocedure:id}”,callable = true,resultClass = Subscriber.class)
其中id是我的过程参数,但它不起作用。
答案 0 :(得分:3)
看看这个:
@Entity
@NamedNativeQuery(name = "SampleNameQuery",query = "call spS_NamedQuery(?,?)",resultSetMapping="mapping",resultClass = NamedQuery.class)
@SqlResultSetMapping(name="mapping",columns=@ColumnResult(name="value"))
public class NamedQuery {
@Id
public String name;
@Column
public String value;
}
. . . .
你传递的参数如下:
Transaction trx = null;
Session session = HibernateSessionFactory.getSession();
try {
trx = session.beginTransaction();
org.hibernate.Query query = session.getNamedQuery("SampleNameQuery");
query.setParameter(0,"fsdfsdf");
String value = "";
query.setParameter(1,value);
List objList = query.list();
trx.commit();
我希望它对你有所帮助。