如何使用spring data jpa调用数据库函数?

时间:2018-09-05 09:52:39

标签: java spring spring-data-jpa

我想从Spring Boot应用程序调用数据库函数,该函数将返回解密的值。

是否可以使用spring数据jpa调用数据库函数? 如果可能的话如何?

如果无法使用spring数据jpa,是否可以通过spring boot调用函数?

这是我的职能

IF OBJECT_ID('fn_MASK_CARD') IS NOT NULL
    DROP FUNCTION fn_MASK_CARD
GO

CREATE FUNCTION fn_MASK_CARD (
    @CARD_NUMBER  VARCHAR(19)
    )
   RETURNS VARCHAR(19)
AS
BEGIN
    RETURN SUBSTRING(@CARD_NUMBER,1,6)+REPLICATE('#',LEN(@CARD_NUMBER)-10)+
                                                        SUBSTRING(@CARD_NUMBER,LEN(@CARD_NUMBER)-3,LEN(@CARD_NUMBER));
END
GO

4 个答案:

答案 0 :(得分:1)

您通过

从DAO调用DB函数

{? = call <package_name>.<>Function_Name(<parameter >)}

例如

{? = call mypackage.myfunction(?)}

答案 1 :(得分:0)

最终找到了答案,只需将以下代码添加到我的存储库中就可以了!

@Query(nativeQuery = true, value = "SELECT DBO.fn_MASK_CARD(:text)")
String callMaskCard(@Param("text") String text);

答案 2 :(得分:0)

对我有用。尝试将以下代码添加到您的存储库中。

@Query(nativeQuery = true, value = "SELECT fn_MASK_CARD(:card_num) FROM DUAL")
String maskCard(@Param("card_num") String card_num);

答案 3 :(得分:0)

nativeQuery = true 在 Spring JPA 中调用数据库函数是前提条件。

@Query(value = "SELECT your_function()", nativeQuery = true)

GL