1

这次我尝试使用组件向存储库添加值。我阅读没有问题。

目前,我正在尝试将城市添加到存储库

我的代码:

Session session = this.getPersistableSession(request);
HippoBean siteBaseBean = request.getRequestContext().getSiteContentBaseBean();
HippoBean hippoFolder = siteBaseBean.getBean("city"); 
Node node = hippoFolder.getNode();

String path = node.getPath(); // it's working "/content/documents/myhippoproject/city"

node.addNode("4","hippo:handle");
session.save();

在这段代码之后什么也没发生。我也试过:

node.addNode("4",HippoNodeType.HIPPO_NODE);

没有错误和节点。

4

1 回答 1

2

好的,我找到了解决方案。

Session session = this.getPersistableSession(request);
    HippoBean siteBaseBean = request.getRequestContext().getSiteContentBaseBean();
HippoBean hippoFolder = siteBaseBean.getBean("city"); 
    Node node = hippoFolder.getNode();

HippoRepository repository = HippoRepositoryFactory.getHippoRepository("vm://");
            Session session2 = repository.login("admin", "admin".toCharArray());


            HstRequestContext requestContext = request.getRequestContext();
            WorkflowPersistenceManager wpm = null;
            wpm = getWorkflowPersistenceManager(session2);
            wpm.setWorkflowCallbackHandler(new BaseWorkflowCallbackHandler<DocumentWorkflow>() {
                public void processWorkflow(DocumentWorkflow wf) throws Exception {
                    wf.requestPublication();
                }
            });
String name = "12";

wpm.createAndReturn(node.getPath(), "myhippoproject:City", name, false);

City city = (City) wpm.getObject(node.getPath() + "/" + name);
                wpm.update(city);
                session2.save();
于 2015-03-17T11:06:57.220 回答