严重: Servlet.service() for servlet default threw exception
org.hibernate.ObjectDeletedException: deleted entity passed to persist: [net.aykj.pojo.Expert#<null>]
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:113)
at org.hibernate.impl.SessionImpl.firePersistOnFlush(SessionImpl.java:672)
at org.hibernate.impl.SessionImpl.persistOnFlush(SessionImpl.java:664)
at org.hibernate.engine.CascadingAction$9.cascade(CascadingAction.java:346)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:292)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:240)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:320)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:266)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:243)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
at org.hibernate.engine.Cascade.cascade(Cascade.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:145)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
org.hibernate.ObjectDeletedException: deleted entity passed to persist: [net.aykj.pojo.Expert#<null>]
at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:113)
at org.hibernate.impl.SessionImpl.firePersistOnFlush(SessionImpl.java:672)
at org.hibernate.impl.SessionImpl.persistOnFlush(SessionImpl.java:664)
at org.hibernate.engine.CascadingAction$9.cascade(CascadingAction.java:346)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:292)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:240)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:320)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:266)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:243)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:193)
at org.hibernate.engine.Cascade.cascade(Cascade.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:154)
at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:145)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:88)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
参考下吧,1楼的估计是copy这的
if(article != null) {
String picture = article.getPicture();
String videoPath = article.getVideoPath();
Set<ExpertMessage> expertMessages=article.getExpertMessages();
Set<WorkTime> workTimes=article.getWorkTimes();
Set<OnlineBook> onlineBooks=article.getOnlineBooks();
Set<ExpertPicture> expertPictures=article.getPictures();
for(ExpertMessage e:expertMessages){
//article.getExpertMessages().remove(e);
e.getExpert().getExpertMessages().remove(e);
expertMessageDAO.remove(ExpertMessage.class, e.getId());
}
for(OnlineBook e:onlineBooks){
//article.getOnlineBooks().remove(e);
e.getExpert().getOnlineBooks().remove(e);
onlineBookDAO.remove(OnlineBook.class, e.getId());
}
for(ExpertPicture e:expertPictures){
e.getExpert().getPictures().remove(e);
expertPictureDAO.remove(ExpertPicture.class, e.getId());
//article.getPictures().remove(e);
}
for(WorkTime e:workTimes){
e.getExpert().getWorkTimes().remove(e);
workTimeDAO.remove(WorkTime.class, e.getId());
//article.getWorkTimes().remove(e);
}
expertDAO.remove(article);
if(picture != null) {
FileUtil.deleteFile(getFileBasePath() + picture);
}
if(videoPath != null) {
FileUtil.deleteFile(getFileBasePath() + videoPath);
}
}
各种删不掉,试各种方法啊