Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Liferay setModifiedDate不影响数据库';s修饰酸盐_Liferay_Liferay 7 - Fatal编程技术网

Liferay setModifiedDate不影响数据库';s修饰酸盐

Liferay setModifiedDate不影响数据库';s修饰酸盐,liferay,liferay-7,Liferay,Liferay 7,我需要在Java服务中创建一篇带有2012年12月21日修改日期的期刊文章。下面是您的JavaDoc: * @param serviceContext the service context to be applied. Can set the * [...], modification date, [...] * for the web content article. 以下是我的尝试: Date date = new SimpleDateFormat

我需要在Java服务中创建一篇带有2012年12月21日修改日期的期刊文章。下面是您的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
是今天的日期

我做错了什么?
也许这个电话被认为是最后一次修改?如何解决这个问题?

试试以下方法:

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。

尝试以下方法:

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.
journalaarticleutil.create
将返回
journalaarticle
类的新对象。
2.根据您的要求设置属性(重点:
setModifiedDate
)。

3.通过传递已填充的对象将其存储在数据库中来调用JournalArticleUtil.update。

您可以通过以下代码实现:

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.
journalaarticleutil.create
将返回
journalaarticle
类的新对象。
2.根据您的要求设置属性(重点:
setModifiedDate
)。

3.调用
JournalArticleUtil.update
,通过传递已填充的对象将其存储在数据库中。

由于这是一个非常详细的问题,您可能希望在处查看实现(选择您的版本标记),因为这是一个非常详细的问题,您可能希望在处查看实现(选择您的版本标记)出于性能原因(迁移大量内容),我真的更喜欢第二次Liferay/数据库调用。但如果没有其他解决方案,我将使用这个,谢谢!我编辑了答案,现在检查是否对你更合适。顺便说一句,还有两个对DB的调用:(次要说明:在第二个代码列表中,是否也可以添加
setModifiedDate
调用?这很简单,但这毕竟是问题的关键,所以最好100%弄清楚它。^ ^另外,您建议的两种方法之间的区别是什么:addArticle+updateJournalArticle和createJournalArticle+addJournalArticle?是的,您可以设置modifiedDate,这是您拥有的方法之一。顺便说一句,不同之处在于,第二种方法必须设置日志的所有字段,而且它们很多:。因此,如果需要,您应该检查每个字段,如果它是id ecc…第一种方法,Liferay将执行所有脏活。出于性能原因(迁移大量内容),我真的希望第二次调用Liferay/数据库。但是如果没有其他解决方案,我将使用此解决方案,谢谢!我编辑了答案,现在检查它是否更适合您。顺便说一句,还有两次调用DB:(次要说明:在第二个代码列表中,是否也可以添加
setModifiedDate
调用?这很简单,但这毕竟是问题的关键,所以最好100%弄清楚它。^ ^另外,您建议的两种方法之间的区别是什么:addArticle+updateJournalArticle和createJournalArticle+addJournalArticle?是的,您可以设置modifiedDate,这是您拥有的方法之一。顺便说一句,不同之处在于,第二种方法必须设置日志的所有字段,而且它们非常多:。因此,如果需要,您应该检查每个字段,如果它是id ecc…第一种方法中,Liferay将完成所有脏活。