Cómo llamar a la función oráculo de aplicación de inicio de primavera?

Harish Bagora:

Mi requisito es que necesito para llamar a la función oráculo de aplicación de inicio de primavera sin usar consulta nativa.

a continuación es mi función de Oracle que se está llevando fecha como entrada

create or replace FUNCTION todate(src_dt IN date) 
 RETURN date
 is
  BEGIN 
  RETURN(to_date(src_dt)); 
  END;

yo estaba buscando solución en Internet, pero hasta el momento no nos't encuentro. la gente está diciendo alguna necesidad dialecto personalizado para crear pero no encontraron ningún paso perfecto por el enlace de paso.

a continuación es mi código java: -

 Query query1 = entityManager.createQuery("select todate(ActSubT.createdDt) from ActSubT ActSubT");
    List<Object> result=query1.getResultList();

este código debe correr, a partir de ahora su error dando como todate es función de Oracle y no he configurado nada en application.yml archivo.

a continuación el error que estoy recibiendo

  java.lang.IllegalArgumentException: org.hibernate.QueryException: 
  No data type for node: 
 org.hibernate.hql.internal.ast.tree.MethodNode 
 \-[METHOD_CALL] MethodNode: '('
  +-[METHOD_NAME] IdentNode: 'todate' {originalText=todate}

Por favor ayuda

Harish Bagora:

Soy capaz de resolver mi problema.

Paso 1: - he creado dialecto costumbre, a continuación es mi código ..

public class CustomDialect extends Oracle12cDialect {
    public CustomDialect() {
        super();
        // CustomFunction implements SqlFunction
      //  registerFunction("custom_function", new CustomFunction());
        // or use StandardSQLFunction; useful for coalesce
        registerFunction("todate", new StandardSQLFunction("todate", StandardBasicTypes.DATE));
    }
}

Paso 2: - ahora yo estoy llamando a la función estrictas disponibles, a continuación es el código Java

Query query1 = entityManager.createQuery("select function('todate',ActSubT.createdDt) from ActSubT ActSubT where ActSubT.id=1105619");

        Object resulth=query1.getSingleResult();

Paso 3: - esta entrada tenemos que poner en application.poperties / application.yml

# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect = com.sbill.app.config.CustomDialect

Eso es todo ahora puedo llamar db función con el código de Java.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=331724&siteId=1
Recomendado
Clasificación