- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果进行修改,则会给出org.hibernate.NonUniqueObjectException
。在我的 BidderBO 类(class)中
@Override
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
public boolean updateBidder(BiddersDetailForm bidderDetailForm, MISSessionBean misSessionBean) throws MISException {
boolean status = false;
boolean childStatus =false;
try {
BidderHeaderBean bidderHeaderBean = populaBidderHeaderBean(bidderDetailForm);
MISAuditBean misAuditBean = new MISAuditBean();
misAuditBean.setStatus(MISConstants.MASTER_STATUS_VERIFIED);
misAuditBean.setEntBy(misSessionBean.getEnteredBy());
misAuditBean.setEntDate(misSessionBean.getEnteredDate());
bidderHeaderBean.setMisAuditBean(misAuditBean);
status = bidderHeaderDao.updateBidderHeader(bidderHeaderBean);
if(status){
long bidderInfoId = bidderDetailForm.getBidInfoId();
List<BidderDetailBean> bidderDetailBeans = populateBidderDetailBeans(bidderDetailForm, bidderInfoId, misSessionBean, MISConstants.MASTER_STATUS_VERIFIED);
log.debug("\nBidder DetailBeans\t"+bidderDetailBeans);
for(BidderDetailBean bidderDetailBean:bidderDetailBeans ){
log.debug("bank name ==========="+bidderDetailBean.getBankName());
log.debug("bid amount ==========="+bidderDetailBean.getBidAmount());
log.debug("getBidderName ==========="+bidderDetailBean.getBidderName());
log.debug("getBidInfoId ==========="+bidderDetailBean.getBidInfoId());
log.debug("getSeqBidId ==========="+bidderDetailBean.getSeqBidId());
log.debug("status ==========="+bidderDetailBean.getMisAuditBean().getStatus());
log.debug("bid sale date ==========="+bidderDetailBean.getMisAuditBean().getEntDate());
}
childStatus = bidderDetailDao.updateBidderDetailBeans(bidderDetailBeans);
if(!childStatus){
throw new MISException(MISExceptionCodes.MIS003, "Bidder Details are not updated for "+bidderDetailForm.getTenderId());
}
}
} catch (DataAccessException e) {
log.error(e.getLocalizedMessage(),e);
throw new MISException(e.getMostSpecificCause());
} catch (MISException e) {
log.error(e.getLocalizedMessage(),e);
throw e;
}
return status && childStatus;
}
而Bean(BidderDetailBean)是
public class BidderDetailBean implements Serializable {
/**
* Initial Version
*/
private static final long serialVersionUID = -2234569083113434751L;
@Id
@GeneratedValue(generator = "seq_bid_id", strategy = GenerationType.AUTO)
@SequenceGenerator(name = "seq_bid_id", sequenceName = "prwss_main.seq_bid_id")
@Column(name = "seq_bid_id", nullable = false)
private long seqBidId;
@Column(name="bid_info_id", nullable=false)
private long bidInfoId;
@Column(name="bidder_name", nullable=false)
private String bidderName;
@Column(name="bid_sale_date")
private Date bidSaleDate;
@Column(name="bid_submitted")
private String bidSubmitted;
@Column(name="emd_amount")
private double emdAmount;
@Column(name="emd_valid_upto")
private Date emdValidUpto;
@Column(name="emd_instrument_type")
private String emdInstrumentType;
@Column(name="bank_name")
private String bankName;
@Column(name="not_responsive")
private String notResponsive;
@Column(name="bidder_contact_number")
private String contactNumber;
@Column(name="remarks")
private String remarks;
@Column(name="bid_amount")
private double bidAmount;
@Embedded
private MISAuditBean misAuditBean;
public long getBidInfoId() {
return bidInfoId;
}
public void setBidInfoId(long bidInfoId) {
this.bidInfoId = bidInfoId;
}
public String getBidderName() {
return bidderName;
}
public void setBidderName(String bidderName) {
this.bidderName = bidderName;
}
public Date getBidSaleDate() {
return bidSaleDate;
}
public void setBidSaleDate(Date bidSaleDate) {
this.bidSaleDate = bidSaleDate;
}
................................
而 BidderHeaderBean 是......
public class BidderHeaderBean implements Serializable {
/**
* Initial Version
*/
private static final long serialVersionUID = 6163541390640145180L;
@Id
@SequenceGenerator(name="seq_bid_info_id", sequenceName="prwss_main.seq_bid_info_id")
@GeneratedValue(generator="seq_bid_info_id", strategy=GenerationType.AUTO)
@Column(name="bid_info_id", nullable=false)
private long bidInfoId;
@Column(name="location_id")
private String locationId;
@Column(name="tender_id")
private String tenderId;
@Column(name="bidding_phase")
private int biddingPhase;
@Column(name="bid_opening_date")
private Date bidOpeningDate;
@Column(name="reference_tender_id")
private String referenceTenderId;
@Embedded
private MISAuditBean misAuditBean;
@OneToMany(targetEntity=BidderDetailBean.class, fetch=FetchType.EAGER)
@JoinColumn(name="bid_info_id", insertable=false, updatable=false)
private Set<BidderDetailBean> bidderDetailBeans;
public long getBidInfoId() {
return bidInfoId;
}
public void setBidInfoId(long bidInfoId) {
this.bidInfoId = bidInfoId;
}
我的 daoimpl 类正在使用这个函数......
@Override
public boolean saveOrUpdateBidderDetailBeans(Collection<BidderDetailBean> bidderDetailBeans) throws DataAccessException {
try {
System.out.println("bidderDetailBeans----in dao===="+bidderDetailBeans.toString());
getHibernateTemplate().flush();
getHibernateTemplate().saveOrUpdateAll(bidderDetailBeans);
getHibernateTemplate().flush();
getHibernateTemplate().clear();
} catch (DataAccessException e) {
throw e;
}
return true;
}
请提供一些指导,我也尝试过清除功能、合并和 saveOrUpdate 但它不起作用。它给出错误............
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bank name ===========State Bank of Patiala
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid amount ===========1452250.0
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidderName ===========7575
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidInfoId ===========3517
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getSeqBidId ===========5268
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] status ===========U
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid sale date ===========2014-06-27 10:04:46.857
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bank name ===========State Bank of Patiala
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid amount ===========992620.0
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidderName ===========Ven00002
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidInfoId ===========3517
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getSeqBidId ===========5267
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] status ===========D
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid sale date ===========2014-06-27 10:04:46.857
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bank name ===========State Bank of Patiala
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid amount ===========1452250.0
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidderName ===========7575
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getBidInfoId ===========3517
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] getSeqBidId ===========5268
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] status ===========D
2014-06-27 10:10:08,659 DEBUG [com.prwss.mis.tender.BidderBOImpl] bid sale date ===========2014-06-27 10:04:46.857
2014-06-27 10:10:08,667 ERROR [com.prwss.mis.tender.BidderBOImpl] a different object with the same identifier value was already associated with the session: [com.prwss.mis.tender.biddersdetail.dao.BidderDetailBean#5268]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.prwss.mis.tender.biddersdetail.dao.BidderDetailBean#5268]
org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [com.prwss.mis.tender.biddersdetail.dao.BidderDetailBean#5268]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.prwss.mis.tender.biddersdetail.dao.BidderDetailBean#5268]
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:679)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdateAll(HibernateTemplate.java:757)
at com.prwss.mis.tender.biddersdetail.dao.BidderDetailDaoImpl.saveOrUpdateBidderDetailBeans(BidderDetailDaoImpl.java:53)
at com.prwss.mis.tender.BidderBOImpl.updateBidder(BidderBOImpl.java:131)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at $Proxy34.updateBidder(Unknown Source)
at com.prwss.mis.tender.struts.BiddersDetailAction.update(BiddersDetailAction.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:113)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.prwss.mis.tender.biddersdetail.dao.BidderDetailBean#5268]
at org.hibernate.engine.StatefulPersistenceContext.checkUniqueness(StatefulPersistenceContext.java:638)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performUpdate(DefaultSaveOrUpdateEventListener.java:305)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsDetached(DefaultSaveOrUpdateEventListener.java:246)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:112)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:685)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:677)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:673)
at org.springframework.orm.hibernate3.HibernateTemplate$18.doInHibernate(HibernateTemplate.java:761)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 49 more
最佳答案
每当您为先前附加到当前 session 的实体调用 saveOrUpdate(这意味着 session 实体附加)时,都会引发此异常。
一种解决方法是使用合并,仅当尚未附加任何实体时才附加实体,在这种情况下,它只是将已附加的实体合并到作为参数给出的当前实体。
BidderHeaderBean 有一个不可插入/可更新的子关联:
@OneToMany(targetEntity=BidderDetailBean.class, fetch=FetchType.EAGER)
@JoinColumn(name="bid_info_id", insertable=false, updatable=false)
private Set<BidderDetailBean> bidderDetailBeans;
这不是一个mappedBy 或inverse 的。 BidderDetailBean 也没有与 BidderHeaderBean 的关联,因此该关联永远无法工作,因为外键永远不会被插入/更新。
关于java - 在 Hibernate3 中的 saveOrUpdateAll 情况下,具有相同标识符值的不同对象已与 session 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24444385/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!