我想从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
答案 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