我需要在Java服务中创建一个带有21/12/2012修改日期的期刊文章。这是addArticle的JavaDoc:
* @param serviceContext the service context to be applied. Can set the
* [...], modification date, [...]
* for the web content article.
这是我的尝试:
Date date = new SimpleDateFormat("dd/MM/yyyy").parse("21/12/2012");
serviceContext.setModifiedDate(date);
// Add article.
JournalArticleLocalServiceUtil.addArticle(
userId, groupId, folderId, titleMap, descriptionMap,
xmlContent, structureKey, templateKey, serviceContext);
问题:在数据库中,创建的JournalArticle行modifiedDate
是今天的日期。
我做错了什么?
也许addArticle电话被认为是最后一次修改?如何解决这个问题?
答案 0 :(得分:2)
试试这个:
Date date = new SimpleDateFormat("dd/MM/yyyy").parse("21/12/2012");
// Add article.
JournalArticle article = JournalArticleLocalServiceUtil.addArticle(
userId, groupId, folderId, titleMap, descriptionMap,
xmlContent, structureKey, templateKey, serviceContext);
article.setModifiedDate(date);
JournalArticleLocalServiceUtil.updateJournalArticle(article);
另一种方式:
您可以使用JournalArticleLocalServiceUtil.addJournalArticle(journalArticle)
方法,但必须手动创建journalArticle
对象:
long primaryKey = CounterLocalServiceUtil.increment(JournalArticle.class.getName());
JournalArticle journalArticle = JournalArticleLocalServiceUtil.createJournalArticle(primaryKey);
//Set all the journal properties you need...
journalArticle.setGroupId(yourGroupId);
journalArticle.setUserId(yourUserId);
journalArticle.setStructureId(ddmStructureKey);
journalArticle.setTemplateId(ddmTemplateKey);
...
JournalArticleLocalServiceUtil.addJournalArticle(journalArticle);
这与Liferay 7 API有关,但它也适用于6.2。
答案 1 :(得分:2)
您可以通过以下代码实现这一目标:
JournalArticle journalArticle =
JournalArticleUtil.create(CounterLocalServiceUtil.increment());
Date now = new Date();
Date modifiedDate = new SimpleDateFormat("dd/MM/yyyy").parse("21/12/2012");
journalArticle.setUserId(userId);
journalArticle.setGroupId(groupId);
journalArticle.setFolderId(folderId);
journalArticle.setTitleMap(titleMap);
journalArticle.setDescriptionMap(descriptionMap);
journalArticle.setContent(xmlContent);
journalArticle.setStructureId(structureKey);
journalArticle.setTemplateId(templateKey);
journalArticle.setCreateDate(now);
journalArticle.setModifiedDate(modifiedDate);
JournalArticle updatedJournalArticle = JournalArticleUtil.update(journalArticle);
<强>理解:强>
1. JournalArticleUtil.create
会返回JournalArticle
级的新对象
2.根据您的要求设置属性(重点:setModifiedDate
)
3.通过传递已填充的对象将其存储在数据库中来调用JournalArticleUtil.update
。