hibernate ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句

本文记录了一次在使用Hibernate框架操作Oracle数据库时遇到的“ORA-01453: SET TRANSACTION必须是事务处理的第一个语句”错误,并分享了解决方案。
部署运行你感兴趣的模型镜像
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory).getCurrentSession();
session.beginTransaction();
Users user = new Users();
user.setName("weiwei");
user.setPassword("123");
session.save(user);
session.getTransaction().commit();}

session.beginTransaction();报错
xception in thread "main" org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
at $Proxy0.beginTransaction(Unknown Source)
at com.wangchao.com.Test.main(Test.java:13)
Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:206)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:945)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1159)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1678)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1644)
at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1590)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:126)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 11 more
有第一条语句,数据库应该连上了,大家看看什么错,好像是ORACLE报出来的。
问题解决了
<!-- <property name="connection.isolation">2</property> -->
虽然不知道什么原因,但是解决了。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

09/08/25 06:54:45.29 LISTsrv.5:FwDbStmtOracle::execute:ERROR - rows processed=0: error executing statement (select l.appid,l.physicalStatus,l.physicalLocation,ecse.reservedFoup,lx.ReservedEqpName,lx.reservedPortId,ecse.reservedTime from fwlot l ,fablotext lx,FwEqpCurrentState ecs,FabEqpCurrentStateExt ecse where l.sysid=lx.PARENT and l.materialType='Durable' and ecs.sysid=ecse.parent and ecs.equipmentName=:portId and ecse.isReserved='T' and ecse.reservedFoup=l.appid and l.physicalLocation not in('ALKRI03',:portId) and l.physicalStatus not in('InEqp','InFab','EqpOnInOutPort','EqpOnInPort') and lx.ReservedPortId=:portId order by l.appid): Error(6-158) Mismatch between bind variable and input values - ORA-01008: not all variables bound 09/08/25 06:54:45.29 LISTsrv.5:FabListRule::CreateListFile:ERROR - Error(6-158) Mismatch between bind variable and input values - ORA-01008: not all variables bound 09/08/25 06:54:45.29 LISTsrv.5:fwsrvExecServerRule:finish executing rule LSTRETRANSPORTJOBLISTRULE 09/08/25 06:54:45.29 LISTsrv.5:FwTransaction::storeIt:ERROR - Error(6-158) reasonCode = Mismatch between bind variable and input values - ORA-01008: not all variables bound ; ruleReply = CANCELRULE 09/08/25 06:54:45.29 LISTsrv.5:FwTransaction::doIt:ERROR - transaction failure: Error(6-158) reasonCode = Mismatch between bind variable and input values - ORA-01008: not all variables bound ; ruleReply = CANCELRULE 09/08/25 06:54:45.29 LISTsrv.5:FwPublication::sendSmall:252 byte msg to (0x7555) reply is 0分析一下这个oracle报错的原因是什么
最新发布
09-09
NHibernate.Exceptions.GenericADOException HResult=0x80131500 Message=could not insert: [Nebula.EAP.Core.Scenario.Models.CUST_UPH_NORMAL#Nebula.EAP.Core.Scenario.Models.CUST_UPH_NORMAL][SQL: INSERT INTO CUST_UPH_NORMAL (EVENT_TIME, NORMAL_UPH, USE_FLAG, STATE, EQP_CODE, WORK_STATION, MODEL_ID, DIE_PART, GRINDING_THINESS, BDCODE, BDVERSION, CUST_DEVICE) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] Source=NHibernate StackTrace: 在 NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session) 在 NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session) 在 NHibernate.Action.EntityInsertAction.Execute() 在 NHibernate.Engine.ActionQueue.InnerExecute(IExecutable executable) 在 NHibernate.Engine.ActionQueue.ExecuteActions[T](List`1 list) 在 NHibernate.Engine.ActionQueue.ExecuteActions() 在 NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSource session) 在 NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEvent event) 在 NHibernate.Impl.SessionImpl.Flush() 在 NHibernate.Impl.SessionImpl.BeforeTransactionCompletion(ITransaction tx) 在 NHibernate.Transaction.AdoTransaction.Commit() 在 Nebula.EAP.Core.Scenario.Dao.CommonDao.SaveNormalUph(EQP_SECS_CONFIG esc, CUST_UPH_NORMAL custUphNormal) 在 F:\ProgramNew\nebula.eap.core\Nebula.EAP.Core.Scenario\Dao\CommonDao.cs 中: 第 28491 行 此异常最初是在此调用堆栈中引发的: [外部代码] 内部异常 1: OracleException: ORA-01502: 索引 'FHEAP.CUST_UPH_NORMAL_PK' 或这类索引的分区处于不可用状态
06-19
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值