我想调用一个Oracle函数来检查用户是否在我的Java Bean中有效。该函数具有以下代码:
FUNCTION valid_user1(p_username IN VARCHAR2, p_password IN VARCHAR2)
RETURN BOOLEAN AS
v_dummy VARCHAR2(1);
BEGIN
BEGIN
SELECT '1'
INTO v_dummy
FROM t_user
WHERE username = UPPER(p_username)
AND password = get_hash(p_username, p_password);
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,
'Invalid username/pass!');
END;
RETURN TRUE;
EXCEPTION
WHEN OTHERS THEN
RETURN FALSE;
END;
END;
我从来没有在Hibernate中调用过函数,我也不知道如何继续。我读了一些文章,其中写的是使用过程比使用过程更好但我不明白为什么。请给我一些如何使用EntityManager执行该功能的指南。提前谢谢!
答案 0 :(得分:1)
试试这个: -
Boolean valid = (Boolean)entityManager.createNativeQuery("SELECT valid_user1(?1,?2) FROM DUAL")
.setParameter(1, userName)
.setParameter(2, pwd)
.getSingleResult();