These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: How to save/update view
PostPosted: Mon Oct 09, 2006 12:37 am 
Newbie

Joined: Mon Oct 09, 2006 12:13 am
Posts: 1
Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hi, I want to insert and update a view to table using hibernate , and I have already set id in mapping file, the save/update function implements when there is no value change, but once change the value it will give such error says that cannot modify a column which maps to a non key-preserved table

Pls help, thanks a lot!!


Hibernate version: Hibernate 3.0

Mapping documents: It is a view mapping
<hibernate-mapping>
<class name="com.chrt.car.hibernate.model.CarApprView" table="CAR_APPR_VIEW" schema="ICAREDVT">
<id name="carSeq" type="java.lang.String">
<column name="CAR_SEQ" length="20" />
<generator class="assigned" />
</id>
<property name="apprId" type="java.lang.String">
<column name="APPR_ID" length="10" />
</property>
<property name="fabGroup" type="java.lang.String">
<column name="FAB_GROUP" length="10" />
</property>
<property name="carType" type="java.lang.String">
<column name="CAR_TYPE" length="10" />
</property>
</class>
</hibernate-mapping>

Code between sessionFactory.openSession() and session.close():
using sessionFactory auto-generate by eclipse.

Full stack trace of any exception that occurs:

2006-10-09 12:04:38,015 ERROR [ AbstractFlushingEventListener] - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:137)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransacti
onManager.java:496)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManag
er.java:469)
at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(Transaction
AspectSupport.java:266)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
at com.chrt.car.struts.wf8d.delegate.Wf8dMasterDelegate$$EnhancerByCGLIB$$5d139a6e.save(<generated>)
at com.chrt.car.struts.wf8d.action.Wf8dAppAction.dhtmlButtons(Wf8dAppAction.java:103)
at com.chrt.car.struts.wf8d.action.Wf8dAppAction.unspecified(Wf8dAppAction.java:81)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:256)
at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:160)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.securityfilter.filter.SecurityFilter.doFilter(SecurityFilter.java:188)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.BatchUpdateException: ORA-01779: cannot modify a column which maps to a non key-preserved table

Name and version of the database you are using: Oracle 9

The generated SQL (show_sql=true): If save no change data
2006-10-09 12:34:12,984 DEBUG [ SQL] - select carapprvie_.CAR_SEQ, carapprvie_.APPR_ID as APPR2
_42_, carapprvie_.FAB_GROUP as FAB3_42_, carapprvie_.CAR_TYPE as CAR4_42_, carapprvie_.ROW_NO as ROW5_42_, carapprvie_.APPR_N
AME as APPR6_42_, carapprvie_.APPR_DESC as APPR7_42_, carapprvie_.ACTIVE as ACTIVE42_, carapprvie_.APPR_USER_ID as APPR9_42_,
carapprvie_.APPR_USER_NAME as APPR10_42_, carapprvie_.DATE_STATUS as DATE11_42_, carapprvie_.APPR_STATUS as APPR12_42_, cara
pprvie_.TRAIL_APPR_ID as TRAIL13_42_ from ICAREDVT.CAR_APPR_VIEW carapprvie_ where carapprvie_.CAR_SEQ=?
Hibernate: select carapprvie_.CAR_SEQ, carapprvie_.APPR_ID as APPR2_42_, carapprvie_.FAB_GROUP as FAB3_42_, carapprvie_.CAR_T
YPE as CAR4_42_, carapprvie_.ROW_NO as ROW5_42_, carapprvie_.APPR_NAME as APPR6_42_, carapprvie_.APPR_DESC as APPR7_42_, cara
pprvie_.ACTIVE as ACTIVE42_, carapprvie_.APPR_USER_ID as APPR9_42_, carapprvie_.APPR_USER_NAME as APPR10_42_, carapprvie_.DAT
E_STATUS as DATE11_42_, carapprvie_.APPR_STATUS as APPR12_42_, carapprvie_.TRAIL_APPR_ID as TRAIL13_42_ from ICAREDVT.CAR_APP
R_VIEW carapprvie_ where carapprvie_.CAR_SEQ=?
2006-10-09 12:34:12,984 DEBUG [ StringType] - binding 'WF8D-00001311' to parameter: 1
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning '2' as column: APPR2_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning 'FAB 3' as column: FAB3_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning '8DWF' as column: CAR4_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning '1' as column: ROW5_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning 'Manager' as column: APPR6_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning null as column: APPR7_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning 'Y' as column: ACTIVE42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning 'e10111' as column: APPR9_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning 'MADHAVAN Pandurangan/Fab Ops/CSP/ST Group' as
column: APPR10_42_
2006-10-09 12:34:13,000 DEBUG [ TimestampType] - returning null as column: DATE11_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning null as column: APPR12_42_
2006-10-09 12:34:13,000 DEBUG [ StringType] - returning '2' as column: TRAIL13_42_
2006-10-09 12:34:13,015 DEBUG [ CarApprViewDAO] - save successful

Debug level Hibernate log excerpt:


Top
 Profile  
 
 Post subject:
PostPosted: Tue Oct 10, 2006 12:12 am 
Regular
Regular

Joined: Tue Sep 26, 2006 11:37 am
Posts: 115
Location: Sacramento, CA
hubert_wanglihui,

Can you do an insert/update of the view outside of hibernate, using a regular sql client?

Marius


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.