java - 我无法使用 hibernate 和 sql-server 2008 在 java 中调用存储过程

标签 java sql-server hibernate stored-procedures

Possible Duplicate:
Calling a Stored Procedure in Hibernate

我有以下问题: 我无法在java中调用存储过程

我所做的是:

创建一个实现可序列化 semaforoBO 调用的类并添加以下内容

@Entity
@NamedNativeQuery(
name="CalculoSemaforo",
query = "exec CalculoSemaforo codigo,fecha",
callable=true,
resultClass=char.class
)
public class SemaforoBO implements Serializable{
//code
}

存储过程的名称是 CalculoSemaforo,有两个返回字符的输入变量。 然后,在 SemaforoBO 中,有一个函数执行以下操作:

public char semaforo(){
        DBTenant dbTenant = new DBTenant();
        Session sess;
        try {
            sess = dbTenant.getTenantSession();
            Query query =sess.getNamedQuery("CalculoSemaforo");
            query.setString("codigo", this.codigoarticulo);
            query.setLong("fecha",this.fecha);
            sem = (Character) query.uniqueResult();
        }
        catch(NullPointerException e)
        {
            sem = 'x';
        }
        return sem;
}

但它给了我一个异常(exception) org.hibernate.MappingException: 命名查询未知:CalculoSemaforo

知道这个解决方案如何谢谢

最佳答案

我找到了一种使用 hibernate 调用存储过程而不使用映射的替代方法,否则您必须依赖一个类来调用

DBTenant dbTenant = new DBTenant();
        Session sess;
        try {
            sess = dbTenant.getTenantSession();
            Query qry = sess.createSQLQuery("{ call Iturria.dbo.CalculoSemaforo2(?,?) }");
            qry.setString(0, this.codigoarticulo);
            qry.setLong(1, this.fecha);
            sem = (Character) qry.uniqueResult();
        }
        catch(NullPointerException e)
        {
            sem = 'y';
            return sem;
        }

感谢回复

关于java - 我无法使用 hibernate 和 sql-server 2008 在 java 中调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12625985/

相关文章:

c# - C#中如何读取SQL Server发送的Json数据?

hibernate - 在 Postgresql 中通过 hibernate 插入日期

java - 可从 DVD 运行的演示 Java 应用程序

java - 在JAVA操作系统上添加监听器

sql-server - 将表表达式传递给表参数化函数

sql-server - 使用 T-SQL 有条件地删除 SQL Server 中 XML 字段中的 XML 元素

java.lang.NoClassDefFoundError : javassist/util/proxy/MethodFilter 错误

java - HQL有什么好处?

java - 在 Java 中执行 shell 脚本并读取输出

java - 使用 spring boot 启动器的更好方法