Я столкнулся со странной проблемой. Все, что я хочу, это создать новую папку с DFC. Но когда я выполняю код (JUnit или внутри приложения), папка не создается, и, что удивительно, исключение не выдается. Так что думаю ошибка где-то в другом.
Это мой код:
public void createNewFolder(String sFolderName, String sParentId)
{
IDfSession session = null;
try
{
session = getSession();
IDfFolder newFolder = (IDfFolder) session.newObject("dm_folder");
newFolder.setObjectName(sFolderName);
newFolder.link(sParentId);
newFolder.save();
String sDump = newFolder.dump();
System.out.println("Folder ["+sFolderName+"] saved.");
System.out.println("Folder has id ["+newFolder.getId("r_object_id")+"]");
}
catch (DfException e)
{
e.printStackTrace();
}
finally
{
m_sessionManager.release(session);
}
В ответ я получаю идентификатор системного объекта, но когда я пытаюсь получить его с помощью оператора dql, я не могу его найти.
В качестве альтернативы я попытался выполнить запрос на создание dql, который создает папку. Это не работает с JUnit или в работающем приложении, но когда я запускаю его вручную, оно просто работает.
Это мой метод getSession()
private IDfSession getSession()
{
try
{
if (m_sessionManager == null)
{
return establishConnection();
}
else
{
return m_sessionManager.getSession(m_sRepository);
}
}
catch (DfException e)
{
e.printStackTrace();
}
return null;
}
Любые идеи по этому поводу?
newFolder.dump()
в вашем коде? Я не вижу, где вы это распечатываете. Если он возвращает вам идентификатор, значит, он создается. - person Brendan Hannemann   schedule 24.08.2011