我得到以下hibernate错误.我能够识别导致问题的功能.不幸的是,函数中有几个DB调用.我无法找到导致问题的行,因为hibernate会在事务结束时刷新会话.下面提到的hibernate错误看起来像是一般错误.它甚至没有提到哪个Bean导致了这个问题.有谁熟悉这个hibernate错误?
org.hibernate.StaleStateException: Batch update returned unexpected row count from update: 0 actual row count: 0 expected: 1
at org.hibernate.jdbc.BatchingBatcher.checkRowCount(BatchingBatcher.java:93)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:79)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransacti
onManager.java:500)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManag
er.java:473)
at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(Transaction
AspectSupport.java:267)
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.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
Run Code Online (Sandbox Code Playgroud) 我在客户端 - 服务器架构中使用协议缓冲区作为有线数据格式.域对象(java bean)将经历以下生命周期.
ProtoBuf文档中的"协议缓冲区和OO设计"部分建议将生成的类包装在适当的域模型中.
我想找出最好的方法.
例如,我有一个简单的原型定义.
package customer;
option java_package = "com.example";
option java_outer_classname = "CustomerProtos";
message Customer {
required string name = 1;
optional string address = 2;
}
Run Code Online (Sandbox Code Playgroud)
这就是域模型的定义方式.如您所见,数据完全存储在proto builder对象中.
package com.example;
public class CustomerModel
{
private CustomerProtos.Customer.Builder builder = CustomerProtos.Customer.newBuilder();
public String getName()
{
return builder.getName();
}
public void setName(String name)
{
builder.setName(name);
}
public String getAddress()
{
return builder.getAddress();
}
public void setAddress(String address)
{
builder.setAddress(address);
}
public …Run Code Online (Sandbox Code Playgroud) 我正在寻找解释Guava ForwardingList类的示例代码.基本上我正在实现一个自定义的ArrayList类,它将用于解决我之前提出的SO问题中提到的这个要求.我以前从未使用过谷歌收藏.但是通过查看ForwardingList的JavaDoc,我想我可以通过子类化ForwardingList来实现我的自定义类.
有一个Java bean对象,它equals根据某些标准实现了功能(标准A).我需要根据其他标准识别唯一对象(标准B).由于该equals功能使用标准A,我无法使用HashSet.所以我考虑使用基于标准B的TreeSet我的自定义Comparator.我的问题是,是否允许这样做?这种方法有什么问题吗?
谢谢.
我想在一个产品中用Activiti或jBPM-5替换自定义BPM实现,该产品使用Hibernate(No JPA)和Spring进行持久层实现.不幸的是,Activiti和jBPM5都需要JPA(根据他们的文档),并且不可能将所有现有的Hibernate实现迁移到产品中的JPA.
注意:我知道应用程序不符合JPA,并且不能使用其他JPA提供程序.
有没有免费的SQL格式化工具?我正在使用http://www.sqlinform.com/进行小型查询.这很棒.但免费版仅支持100行.TORA有这个功能,但它有很多问题,我不能自定义一切.任何免费的Eclipse插件吗?
目前我正在研究JMS应用程序.但我使用普通的JMS API和Property文件进行配置.我的应用程序在Weblogic中运行并连接到我的客户端的MQ系列服务器.最近我知道我可以使用Weblogic进行JMS配置.
请解释.
我有一个文件如下所示的集合.我想获得"_id"或每个组中按"name"分组的最大修订版本的整个文档.
{
"_id" : ObjectId("55aa088a58f2a8f2bd2a3793"),
"name" : "abc",
"revision" : 1
}
{
"_id" : ObjectId("55aa088a58f2a8f2bd2a3794"),
"name" : "abc",
"revision" : 2
}
{
"_id" : ObjectId("55aa088a58f2a8f2bd2a3795"),
"name" : "def",
"revision" : 1
}
{
"_id" : ObjectId("55aa088a58f2a8f2bd2a3796"),
"name" : "def",
"revision" : 2
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我只想选择第2和第4个文件.我尝试了各种方法,包括聚合框架,但不能完全在MongoDB查询中完成.
这有解决方案吗?
谢谢.
我的同事提到我们的客户DBA建议删除项目Oracle DB模式中的所有外键约束.最初我不同意这个决定.我是开发人员而不是DBA.后来才意识到这个决定背后可能有一些原因.所以我正在尝试获得这个决定的利弊.
项目信息:
这是我的利弊清单(如果我错了请纠正我)
优点:
由于应用程序持久性由Hibernate管理,因此不需要外键级联.它由Hibernate管理,具有适当的级联选项.
Hibernate DELETE操作(包括删除级联选项)在删除主键记录之前删除外键表记录(即避免引用完整性问题).对于非外键的情况,外键情况和外键与级联情况,此行为相同.但是添加外键会不必要地减慢Oracle删除操作的速度.
缺点
Hibernate提供了一种机制,用于管理对象之间的关联以及关联中的级联操作.但它永远不会提供DB拥有的完整的参照完整性解决方案.
这些批处理作业仅使用SQL-loader或普通JDBC需要参照完整性.
伙计们,我需要你的建议.如果你们中的任何人都是DBA,请提供DBA方面的原因.
谢谢.