Java 可以用jpa@Query调用Oracle函数吗
可以从jpa hibernateJava 可以用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"
@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中可用。