Intellij IDE无法识别[在此处输入图像描述]@Query("SELECT distinct new com.product.dto.ProductDescriptionsDto" + " (p.id, p.type, CAST(DBMS_LOB.SUBSTR(p.description,4000,1) AS string )) FROM Prodcut p " " WHERE p.code = :code and p.language = :language " ) List<ProductDescriptionsDto> find(@Param("code") String code , @Param("language") String language);
(https://i.stack.imgur.com/CYaF5.png)
我们如何使用它?
我等待它将被转换为正确的sql,但我没有看到它
2条答案
按热度按时间9lowa7mx1#
看起来你试图将Java和SQL混合到一个语句中,你所拥有的不是有效的Java(因为你使用的是SQL语句),也不是有效的SQL,因为
a.b.c
将是有效的语法,就像schema_name.package_name.function_name
一样,但a.b.c.d
不是有效的语法(除非你正在解引用对象派生的表,在这种情况下,使用NEW
关键字将是无效的)。如果你试图从SQL调用一个Java函数,那么把Java函数 Package 在一个SQL函数中(类似于,未经测试):
然后你需要创建一个PL/SQL函数来调用Java类的函数:
然后SQL代码看起来像这样:
如果您试图调用Java类构造函数,那么您需要使用类似this answer的东西从Java类Map到Oracle类型。
如果你正在做其他事情,那么你需要解释你试图实现的目标,因为你的代码不清楚。
gzjq41n42#
请检查:How to call custom database functions with JPA and Hibernate
对你来说就是