Hallo,
ist es möglich im sql-insert Bereich eine Stored Procedure zu erstellen, welche als out parameter den Primärschlüssel der eingefügten Entität zurückgibt.
Bzw.: Kann man Hibernate mitteilen, automatisch den Schlüsselwert aus einer Stored Procedure zu übernehmen.
Ich probieren jetzt schon seit Tagen, habe aber immer noch keine Lösung gefunden.
Die gespeicherte Prozedur sieht folgendermaßen aus:
PROCEDURE newProcess
(
p_retval OUT number,
p_OId IN number
)
IS
begin
p_retval := 345;
end newProcess;
Falls es nicht automatisch geht, gibt es eine Möglichkeit den zurückgegbenen Wert manual abzugreifen.
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hibernate version: 3.2
Mapping documents:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.infraserv.awaktree.dao.objects.node">
<class name="ProcessNode" table="ALL_PROCESSES" check="param" >
<id name="objectId" >
<column name="OID" />
</id>
<property name="dummyId" column="DUMMY2"/>
<sql-insert callable="true" >
{ call rup.newProcess (?, ? )}
</sql-insert>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
Full stack trace of any exception that occurs:
Name and version of the database you are using: Oracle 9i
The generated SQL (show_sql=true):
Debug level Hibernate log excerpt:
Problems with Session and transaction handling?
Read this:
http://hibernate.org/42.html