`
xiaoliefengfeng
  • 浏览: 67300 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于使用spring的hibernatetemplate来操作oracle的大字段的问题总结

阅读更多

不是 GROUP BY 表达式,包这个错误时因为我们在使用聚合函数的时候,聚合函数前面的字段也一定要在出现group by里面
下面是计算订单表里面的某一种商品的总销售额
如:select orderid as 商品id,ordername as 商品名称,count(price) as 商品总价 from orders group by ordername,orderid;
因为在聚合函数count(price)的前面有orderid as 商品id,ordername as 商品名称这两个字段,所以这两个字段都有出现在group by的后面,不然就会报 不是 GROUP BY 表达式这个错误
Caused by: java.sql.SQLException: ORA-00979: 不是 GROUP BY 表达式

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
 ... 33 more


在使用spring的事务管理的时候一定要面向接口编程。如果你配置了事务,且你的业务方法没有面向接口编程,
 如果你在对数据进行添加或删除的时候那么就会报错,这是时候解决的方法就是你把你的业务类提取一个接口
java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required
 at org.springframework.jdbc.support.lob.LobCreatorUtils.registerTransactionSynchronization(LobCreatorUtils.java:79)
 at org.springframework.orm.hibernate3.support.AbstractLobType.nullSafeSet(AbstractLobType.java:185)
 at org.hibernate.type.CustomType.nullSafeSet(CustomType.java:140)
 at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2166)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2412)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2856)
 at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
 ......

检查是否开启了事务,因为在一些对数据的修改插入操作的时候需要事务的支持才能成功

org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
 at org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
 at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:685)
 at cn.feng.ssh2.service.impl.PersonServiceBean.getSession(PersonServiceBean.java:36)
 at cn.feng.ssh2.service.impl.PersonServiceBean.save(PersonServiceBean.java:43)
 at junit.test.datasurceTest.testBlog(datasurceTest.java:78)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 ......

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics