hi All,
I am trying to insert data in database by using store procedure .
i am getting error .please find the solution..
Code:
java.lang.IllegalArgumentException: callable not yet supported for native queries
at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:171)
at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1190)
at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:357)
at com.lara.Dao.LoginDao.saveUser(LoginDao.java:49)
at com.lara.web.LoginAction.execute(LoginAction.java:48)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:735)
my code is....
this is
the method where i calling store procedure....
Code:
public void saveUser(User user) {
System.out.println("I am inside LoginDao class");
Session session = HibernateUtill.currentSession();
Transaction tx = null;
int id=user.getId();
String username=user.getUsername();
String password=user.getPassword();
System.out.println("id......................"+id);
System.out.println("username...................."+username);
System.out.println("password......................"+password);
boolean rollback = true;
try {
System.out.println("1");
Query qry = session.getNamedQuery("selectAllEmployees_SP");
qry.setInteger(0, id);
qry.setString(1, username);
qry.setString(2, password);
System.out.println("2");
qry.executeUpdate();
System.out.println("3");
System.out.println("the data"+qry);
rollback = false;
}
catch (Exception e) {
e.printStackTrace();
}
finally {
if( rollback && tx != null){
tx.rollback();
}
HibernateUtill.closeSession();
}
}
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.lara.pojo">
<class name="com.lara.pojo.User" table="login_table" >
<id name="id" type="java.lang.Integer" column="id">
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<loader query-ref="selectAllEmployees_SP" />
</class>
<sql-query name="selectAllEmployees_SP" callable="true">
<return class="com.lara.pojo.User" alias="emp" >
<return-property name="id" column="id"/>
<return-property name="username" column="username"/>
<return-property name="password" column="password"/>
</return>
{ call login_table2(?,?,?)}
</sql-query>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.lara.pojo">
<class name="com.lara.pojo.User" table="login_table" >
<id name="id" type="java.lang.Integer" column="id">
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<loader query-ref="selectAllEmployees_SP" />
</class>
<sql-query name="selectAllEmployees_SP" callable="true">
<return class="com.lara.pojo.User" alias="emp" >
<return-property name="id" column="id"/>
<return-property name="username" column="username"/>
<return-property name="password" column="password"/>
</return>
{ call login_table2(?,?,?)}
</sql-query>
</hibernate-mapping>
Please provide me solution
Thanks
Raj jaiswal