Liferay setModifiedDate 不影响数据库的修改日期
Liferay setModifiedDate does not impact database's modifiedDate
我需要在 Java 服务中创建修改日期为 21/12/2012 的期刊文章。这是 addArticle 的 Java 文档:
* @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 调用被认为是最后一次修改?如何解决这个问题?
试试这个:
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。
您可以通过以下代码实现:
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
将 return 你成为 JournalArticle
class 的新对象。
2. 根据您的要求设置属性(重点:setModifiedDate
)。
3. 通过传递填充对象调用 JournalArticleUtil.update
将其存储在数据库中。
我需要在 Java 服务中创建修改日期为 21/12/2012 的期刊文章。这是 addArticle 的 Java 文档:
* @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 调用被认为是最后一次修改?如何解决这个问题?
试试这个:
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。
您可以通过以下代码实现:
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
将 return 你成为 JournalArticle
class 的新对象。
2. 根据您的要求设置属性(重点:setModifiedDate
)。
3. 通过传递填充对象调用 JournalArticleUtil.update
将其存储在数据库中。