如何在spring hibernate中使用@NamedNativeQuery将参数传递给存储过程
Posted
技术标签:
【中文标题】如何在spring hibernate中使用@NamedNativeQuery将参数传递给存储过程【英文标题】:how to pass parameters to a stored procedure using @NamedNativeQuery in spring hibernate 【发布时间】:2014-07-12 15:13:39 【问题描述】:我有一个带有参数@id的过程,我也在spring hibernate中调用@NamedNativeQuery,我想知道如何在@NamedNativeQuery的查询属性中传递过程中的参数
我的代码如下所示。
@NamedNativeQuery(name = "Callmyprocedure", query="CALL sampleprocedure :id", callable =true, resultClass = Subscriber.class)
其中 id 是我的过程参数,但它不起作用。
【问题讨论】:
【参考方案1】:看看这个:
@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();
希望对你有帮助。
【讨论】:
以上是关于如何在spring hibernate中使用@NamedNativeQuery将参数传递给存储过程的主要内容,如果未能解决你的问题,请参考以下文章
如何使用注解在 Hibernate 4 和 Spring 中定义不同类型的关系?
如何在 Spring Boot 中使用 Hibernate/JPA 返回多级 json
如何使用 Hibernate 在 Spring Boot 中处理数据库迁移?
如何在 Spring Boot 应用程序中使用 Hibernate 验证进行 Bean 验证?