Java 可以用jpa@Query调用Oracle函数吗

Java 可以用jpa@Query调用Oracle函数吗,java,spring,oracle,hibernate,jpa,Java,Spring,Oracle,Hibernate,Jpa,可以从jpa hibernate@Query调用Oracle函数吗 这对我很有用: @Query("SELECT NEW com.test.project.dto.ResultDTO(g,l.country,r.name) " + "FROM Items g, Service l, Service r, Service s" +" WHERE s.id = g.id" +" AND s.location = l.name"

可以从jpa hibernate
@Query
调用Oracle函数吗

这对我很有用:

@Query("SELECT NEW com.test.project.dto.ResultDTO(g,l.country,r.name) "
            + "FROM Items g, Service l, Service r, Service s"
            +" WHERE s.id = g.id" 
            +" AND s.location = l.name"
            +" AND s.serviceType = 'type'"
            +" AND l.serviceType = 'Location'"
            +" AND l.area = r.name" 
            +" AND r.serviceType = 'Region'")
    public ResultDTO[] name();
但是我想调用
ResultDTO
的构造函数,调用一个带有两个参数的Oracle函数。就像我使用本机SQL一样

在查询中添加:
get\u trans\u lac(l.country,'en')

有没有办法做到这一点

我在应用程序开始时得到一个空指针

这:
SELECT NEW com.test.project.dto.ResultDTO(g,FUNCTION(get_translation,l.country,'en'),r.name)
还提供了一个空指针

我自己也没有尝试过,但在JPQL中似乎有一个叫做
函数(functionName,parameters,…)
(JPA2.1及更高版本,在JPA2.1之前的JPA2.1中,
FUNC
),它将调用本机函数

因此,查询的第一行是:

SELECT NEW com.test.project.dto.ResultDTO(g, FUNCTION('get_translation', l.country, 'en'),r.name)

我自己没有试过,但在JPQL中似乎有一个叫做
函数(functionName,parameters,…)
的东西(JPA2.1和更高版本,在JPA2.1之前的JPA2.1中,
FUNC
),它将调用一个本机函数

因此,查询的第一行是:

SELECT NEW com.test.project.dto.ResultDTO(g, FUNCTION('get_translation', l.country, 'en'),r.name)

感谢您的回答,但得到了相同的结果:
java.lang.IllegalArgumentException:方法的查询验证失败…
,原因是:java.lang.NullPointerException
。还有其他的解决方案吗?看起来
函数
可能是一个日蚀唯一的东西。很抱歉使用CriteriaAPI时,在
CriteriaBuilder
界面中定义了一个方法,该方法插入对数据库函数的调用。由于接口定义中存在这一点,人们会认为JPQL中应该有相同的功能。感谢您的回答,但得到了相同的结果:
java.lang.IllegalArgumentException:方法查询的验证失败…
原因是:java.lang.NullPointerException
。还有其他的解决方案吗?看起来
函数
可能是一个日蚀唯一的东西。很抱歉使用CriteriaAPI时,在
CriteriaBuilder
界面中定义了一个方法,该方法插入对数据库函数的调用。由于接口定义中存在这一点,人们会认为相同的功能应该在JPQL中可用。