我有一个实体类Document和另一个名为空间。关系:JPA坚持对象没有调用persist
@ManyToOne(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST,
CascadeType.MERGE, CascadeType.REFRESH}, optional = true)
@ForeignKey(name = "FK_TO_SPACE__DOCUMENT")
@IndexedEmbedded(prefix = DocumentDefaultFields.SPACE_TO_PREFIX)
private Space toSpace;
嗯,我查询数据库并采取一些文档到一个LinkedList。
<a:commandLink value="move" action="#{moveDocsOperation.moveDocumentToNewSpace(entity)}" reRender="confim,origTable,newTable"/>
和方法:
这个列表是从那里我可以做这样一些更新操作绑定到一个DataTable
public void moveDocumentToNewSpace(final Document document) {
log.info("~~move document #0 from space #1 to space #2", document.getDocumentId(), origSpace.getPath(), newSpace.getPath());
document.setToSpace(newSpace);
origSpaceDocuments.remove(document);
newSpaceDocuments.add(document);
entityAuditer.auditBean(document, Crud.UPDATE);
}
我不明白为什么,设置的toSpace时文件实体,更新也在DB中完成,而实际上并没有执行PERSIST ....
你知道吗为什么?
非常感谢。所以这意味着隐式FlushMode是AUTO? – 2010-11-17 10:04:17
是的,它是AUTO .. – Bozho 2010-11-17 10:12:24