Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate调用返回用户定义类型的Oracle存储函数_Java_Sql_Spring_Oracle_Hibernate - Fatal编程技术网

Java 使用Hibernate调用返回用户定义类型的Oracle存储函数

Java 使用Hibernate调用返回用户定义类型的Oracle存储函数,java,sql,spring,oracle,hibernate,Java,Sql,Spring,Oracle,Hibernate,前几天,我在Hibernate、Spring和Oracle中遇到了一个问题:如何调用一个存储函数,该函数使用Hibernate返回一个用户定义类型的Oracle对象 我开始考虑我应该构建一个实体来定义Oracle用户类型,但问题是我没有现有的表来映射函数名。然后我尝试进行基本查询,但我不知道如何利用返回的对象 以下是我的源代码: -- Main function CREATE OR REPLACE FUNCTION "ECOMMERCE"."NOMBRECOMMANDESPERIODE" (v

前几天,我在Hibernate、Spring和Oracle中遇到了一个问题:如何调用一个存储函数,该函数使用Hibernate返回一个用户定义类型的Oracle对象

我开始考虑我应该构建一个实体来定义Oracle用户类型,但问题是我没有现有的表来映射函数名。然后我尝试进行基本查询,但我不知道如何利用返回的对象

以下是我的源代码:

-- Main function

CREATE OR REPLACE FUNCTION "ECOMMERCE"."NOMBRECOMMANDESPERIODE" (v_dateDebut DATE, v_dateFin DATE)
    RETURN t_commandes_periode
IS
    v_nombre_commandes NUMBER;
    v_nombre_commandes_non_livrees NUMBER;
    v_nombre_commandes_impayees NUMBER;
BEGIN
    SELECT COALESCE(COUNT(c.id), 0)
        INTO v_nombre_commandes
    FROM Commande c
    WHERE c."date" >= v_dateDebut
        AND c."date" <= v_dateFin;

    v_nombre_commandes_non_livrees := commandesNonLivrees(v_dateDebut, v_dateFin).COUNT;
    v_nombre_commandes_impayees := commandesImpayees(v_dateDebut, v_dateFin).COUNT;

    RETURN t_commandes_periode(v_nombre_commandes, v_nombre_commandes_non_livrees, v_nombre_commandes_impayees);
END;
/

-- The returned type

CREATE OR REPLACE TYPE "ECOMMERCE"."T_COMMANDES_PERIODE" AS OBJECT (
  nombreTotal       NUMBER,
  nombreNonLivrees  NUMBER,
  nombreImpayees    NUMBER
);
/
我如何使用Hibernate调用该函数来处理反映T_COMMANDES_PERIODE用户定义类型的Java对象


我感谢任何试图帮助我解决这个问题的人:。

你找到解决方案了吗?我放弃了,太尴尬了……谢谢文森特的回复!我也将不再讨论这个问题,而是在JPA2.1中使用存储过程支持