0
我試着打電話從JPA 2.1的Oracle函數和我得到這個錯誤 -從JPA 2.1調用Oracle函數?
org.hibernate.exception.GenericJDBCException: could not extract ResultSet
...
Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 6
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
...
函數定義 -
FUNCTION my_function (
username IN VARCHAR2,
case_number IN NUMBER,
event_type_id IN NUMBER,
arguments IN VARCHAR2,
note IN VARCHAR2
)
RETURN NUMBER
IS
retval NUMBER;
BEGIN
-- WORKING OF FUNCTION REMOVED
retval := 1;
RETURN retval;
END;
我打電話來此通過 -
@NamedNativeQuery(
name="my_function",query="{ call proc_history.create_parent_event(:username, :caseNumber, :eventTypeId, :arguments, :note) }"
)
public class MyJPAObject {
//
}
與我的DAO -
public Integer callMyFuntion() {
Query query = em.createNamedQuery("my_function");
query.setParameter("username", "me");
query.setParameter("caseNumber", 123456);
query.setParameter("eventTypeId", 123);
query.setParameter("arguments", "test");
query.setParameter("note", "test");
return (Integer)query.getSingleResult();
}
伊夫證實我可以調用使用功能 -
DECLARE retval NUMBER;
BEGIN retval := my_function('me', 123456, 123, 'test', 'test');
END;
什麼我需要做的通過JPA來調用這個?
http://stackoverflow.com/questions/3572626/calling-stored-procedure-from-java-jpa –
感謝 - 這就是爲存儲過程 - 使用SP更容易,因爲它們定義了內外參數 – farrellmr
{? = my_function(?,?,?,?,?)}也可以 –