- 浏览: 718942 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
session.saveOrupdate(Object obj);//只能由java端调用。
flex端调用就报错。不知道怎么回事,说什么"Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1。
只好改成session.save(Object);
根据http://hain.iteye.com/blog/105744说明,
使用的是hibernate的saveOrUpdate方法保存实例。saveOrUpdate方法要求ID为null时才执行SAVE,在其它情况下执行UPDATE 。在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE ,但是数据库里没有主键相关的值,所以出现异常。
blazeds将flex传过来的主见id,自动转成0了。所以报错
关键字: 疑难杂症
从这个bug的字面上,应该是BBusinessman的某个属性是一个实体,在这个实体没有保存之前就保存Businessman对象,导致的错
误。所以我就一直看Businessman的属性中到底哪个是实体,结果发现三个,分别City , Type,
Status,而且这三个实体都是dao.load( Id ,
Session)从数据库中获得的,不是已经有Id的,或者是null,而不存在没有保存的实体。 于是我又怀疑,是否是同一个事务需要一个session,如果不使用此session,是不是这个原因,于是我把事务中方法里所有dao.getSession()这样不太明确的地方都是用方法传入的session,这样session都是同一个了,但是仍旧有此错误。 这样,BBusinessman的各个属性都是没有问题的。那么是否是没有保存BBusinessman之前,而且BBusinessman又被当
作某个实体的属性,首先保存此实体,然后去保存BBusinessman,这样是否会导致这个错误。结果我发现,正是这个问题。 ================错误的写法:=================== Session session = dao.getSession(); Transaction tx = session.beginTransaction(); Bo.setBman( form ,man,session); Bo.saveChangeTable( man,session); // 把man当作属性赋给ChangeTable,并保存ChangeTable. 就是这出的错, dao.save(man,session); // 保存man tx.commit(); ==================== 应该这样写:=============== Session session = dao.getSession(); Transaction tx = session.beginTransaction(); Bo.setBman( form ,man,session); dao.save(man,session); // 保存man Bo.saveChangeTable( man,session); // 把man当作属性赋给ChangeTable,并保存ChangeTable. 就是这出的错, tx.commit(); 这样,问题就解决了。 4、Write operations are not allowed in read-only mode
(FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove
'readOnly' marker from
transaction definition 错误解决 错误代码: 5、关于Hibernate的 Batch
update
returned
unexpected
row
count
from
update
异常 ERROR [http-8080-Processor22] (BatchingBatcher.java:60) - Exception executing batch
: 1
).使用的是hibernate的saveOrUpdate方法保存实例。saveOrUpdate方法要求ID为null时才执行SAVE,在其它情况下执行UPDATE
。在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE
,但是数据库里没有主键相关的值,所以出现异常。 异常: 解决方法: 在Hibernate映射一对多,多对一,多对多的时候新增常常会出现这个异常,代码如下: public void saveFunctionCell(FunctionCell functionCell, Integer pid) { 注意特别标识出来的这个地方,BeanUtils拷贝Bean属性的时候,它会将你的Integer类型全部设置成0,在这里设置一个空,这样就不会抛出错误了。
org.springframework
.dao
.InvalidDataAccessApiUsageException
: Write operations are not allowed in read-only mode (
FlushMode.NEVER
)
- turn your Session into FlushMode.AUTO
or remove 'readOnly'
marker from
transaction definition
错误原因:
OpenSessionInViewFilter在getSession的时候,会把获取回来的session的flush mode
设为FlushMode.NEVER。然后把该sessionFactory绑定到
TransactionSynchronizationManager,使request的整个过程都使用同一个session,在请求过后再接除该
sessionFactory的绑定,最后closeSessionIfNecessary
根
据该session是否已和transaction绑定来决定是否关闭session。在这个过程中,若HibernateTemplate
发现自当前session有不是readOnly的transaction,就会获取到FlushMode.AUTO
Session,使方法拥有写权限。
也即是,如果有不是readOnly的transaction就可以由Flush.NEVER转为Flush.AUTO,拥有insert,update
,delete操作权限,如果没有transaction,并且没有另外人为地设flush model的话,则doFilter的整个过程都是Flush.NEVER。所以受transaction保护的方法有写权限,没受保护的则没有。
参考文章:
http://calvin.blog.javascud.org/post/46.htm
解决办法:
采用spring的事务声明,使方法受transaction控制
<bean id="baseTransaction"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager" ref="transactionManager"/>
<property name="proxyTargetClass" value="true"/>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="update
*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="userService" parent="baseTransaction">
<property name="target">
<bean class="com.phopesoft.security.service.impl.UserServiceImpl"/>
</property>
</bean>
org.hibernate.StaleStateException: Batch
update
returned
unexpected
row
count
from
update
: 0 actual
row
count
: 0 expected: 1
=================================================================
在插入时:
org.hibernate.StaleStateException: Batch
update
returned
unexpected
row
count
from
update
: 0 actual
row
count
: 0 expected: 1
如果是自增主键?
有的数据库是可以修改自增主键例如:mysql,有的数据库是不允许修改自增主键的例如postgresql
不要设置自增主键的值
2)
System.out.println("现在进行新增操作");
FunctionCell fc = new FunctionCell();
try {
BeanUtils.copyProperties(fc, functionCell);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
fc.setFuncCellID(null);
// 获得父权限
FunctionCell pfc = functionCellDao.findFunctionCellByID(pid);
fc.setParentFunctionCell(pfc);
functionCellDao.saveFunctionCell(fc);
}
发表评论
-
C# 调用java同步类
2010-05-10 09:12 2136NetConnection 是发送的异步http请求, ... -
java C#相互调用的全新方式
2010-05-08 02:53 3202原来就是flex 和C#通讯的框架fluorinefx ... -
BlazedsUtil 测试类
2009-12-01 18:47 840package cn.ishion.util; //很简单, ... -
blazes NetConnection.Call.BadVersion
2009-11-01 22:00 1606<mx:RemoteObject destination ... -
java amf压缩
2009-10-25 18:43 3362http://www.5uflash.com/flashjia ... -
java amf
2009-10-25 18:41 1287http://www.5uflash.com/flashjia ... -
spring-blazeds
2009-09-22 11:09 1070http://www.riameeting.com/node/ ... -
Netconnection连接blazeds
2009-09-11 18:13 1061package { import flash.event ... -
blazeds_Detected duplicate HTTP-based FlexSessions
2009-09-09 00:41 3590http://blog.sina.com.cn/s/blog_ ... -
blazeds-data-push-with-remote-objects
2009-07-01 19:10 1731http://codeofdoom.com/wordpress ... -
blazeds向客户端推送数据
2009-07-01 19:02 3265blazeds推送技术至Flex zz 转自http:// ... -
blazeds服务器给客户端发送消息
2009-07-01 18:57 1685private String clientID = UUIDU ... -
blazeds AMFConnection java client
2009-06-30 10:30 2318客户端 as AmFconnection http://aca ... -
flex _blazeds之动态配置message
2009-06-26 09:28 2062api说的继承这个就可以。基本是官方的例子 package ... -
flex调用java方法注意地方
2009-05-23 17:13 2889java代码中不能写重载的方法,否则flex不会调用,写不报错 ... -
blazeds在服务器端取得发送消息内容
2009-05-12 10:01 1903突发奇想看了下源代码,写了个简单的类,因为 messaging ... -
flex message suptopic filter使用subtopic过滤信息
2009-05-09 03:17 1493官方说明,看的真晕,谁有blazeds中文翻译麻烦给一份 I ... -
blazeds message filter 过滤消息——在聊天室的应用
2009-05-09 02:09 3829代码都是官方的,因为我在本地测试,所以得设置channelSe ...
相关推荐
论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...
【标题】"jsp+servlet+hibernate+购物车系统"是一个基于Web的电商应用程序,它结合了三种核心技术:JavaServer Pages(JSP)、Servlet和Hibernate。这个系统旨在实现一个完整的购物过程,包括商品浏览、选择商品加入...
Flex+Spring+Hibernate示例是一种常见的企业级应用架构,它结合了Adobe Flex前端技术、Spring后端框架和Hibernate持久层框架,以构建高效、灵活且易于维护的Web应用程序。在这个示例中,开发者可能已经展示了如何...
业务逻辑可能涉及对数据库的操作,这时Hibernate作为ORM工具,会将Java对象转换为SQL语句执行,然后将结果再次转换回Java对象返回给控制器。最后,控制器将数据传递给JSP页面,由JSP生成响应并返回给用户。 **Web...
Flex+Spring+Hibernate 整合是企业级应用开发中常见的一种技术栈组合,它结合了Flex前端的富互联网应用程序(RIA)开发能力、Spring框架的依赖注入和事务管理功能,以及Hibernate持久化框架的数据库操作便捷性。...
简单struts+spring+hibernate搭建,配置,适合初学者
mystruts+hibernate mystruts+hibernate mystruts+hibernate mystruts+hibernate mystruts+hibernate mystruts+hibernate
一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去
标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...
在本系统中,Hibernate负责将Java对象与MySQL数据库中的表进行绑定,通过HQL(Hibernate Query Language)或SQL进行数据查询和操作,降低了数据库操作的复杂性,提高了开发效率。 book.sql文件很可能是系统数据库的...
AJAX实现用户登录注册(Struts+Spring+Hibernate+Ajax框架) AJAX实现用户登录注册(Struts+Spring+Hibernate+Ajax框架) AJAX实现用户登录注册(Struts+Spring+Hibernate+Ajax框架)
3. **Hibernate ORM**: Hibernate 是一个流行的Java ORM(对象关系映射)框架,它允许开发者用Java对象来操作数据库,而无需直接写SQL语句。Hibernate提供了对象持久化、查询语言(HQL)和缓存机制,简化了数据库操作...
Spring MVC、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大而灵活的后端架构。Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向...
标题中的“PureMVC+Flex+BlazeDS+Spring+Hibernate.doc”指的是一项整合了多种技术的Web应用开发方案,这些技术包括PureMVC、Flex、BlazeDS、Spring和Hibernate。这篇文档可能是指导读者如何将这些技术结合在一起...
这个组合利用了Spring 3.0作为核心框架,Hibernate 3.2作为对象关系映射(ORM)解决方案,BlazeDS 4作为服务器与客户端之间的数据交换层,以及Flex 3.2作为富互联网应用程序(RIA)的前端技术。 首先,Spring 3.0是...
例如,创建新记录时,可以通过Hibernate的Session接口保存实体对象;更新记录则对应于Session的update方法;删除操作使用Session的delete方法;查询通常借助Criteria、HQL或SQL语句,通过SessionFactory的...
spring mvc + spring + hibernate 全注解整合开发视频教程 06.haozip03
Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,使开发者可以使用面向对象的方式与数据库交互。在全注解模式下,我们可以利用@Entity、@Table、@Id、@GeneratedValue等注解来定义实体类,...
基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh项目源码 基于struts+spring+hibernate+oracle的移动ssh...
本方案提供了一种集成化的开发环境,即"MyEclipse7.5+flex4+spring3.0.5+struts2.2.1+hibernate3.6.0+blazeds4.0.0.14931完美整合方案",它将多个流行的技术框架整合在一起,为Web应用程序开发提供了一个强大的平台...