gpt4 book ai didi

java - CMIS:日期选择列表包含不适合更新文档的值

转载 作者:行者123 更新时间:2023-12-02 13:08:32 25 4
gpt4 key购买 nike

这个问题是 Alfresco Community 中问题的抄袭.

在我们公司,我们使用 Alfresco,其中添加了新的 TestModel 和 ListDate 属性。 alfresco model

接下来我们使用 CMIS Apache Chemistry 连接器返回选择列表: idea runtime

当选择这些值之一进行更新时,会出现错误。例如,如果我们选择第一个 (2001-01-05 == 2001 年 1 月 5 日)

HTTP Status 409 - constraint
Constraint violation: 0418520046 Found 1 integrity violations:
Invalid property value:
Node: workspace://SpacesStore/eaf740b4-d22a-415a-9ca7-f58a8e115dbb
Name: vzv_diff
Type: {TestModel}DiffProperties
Property: {TestModel}ListDate
Constraint: 0418520045 The value is not an allowed value: 1/5/01 12:00 AM

第一个值的详细信息:

java.util.GregorianCalendar[
time=978681600000,
areFieldsSet=true,
areAllFieldsSet=true,
lenient=true,
zone=sun.util.calendar.ZoneInfo[id="GMT-08:00",offset=-28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,
ERA=1,
YEAR=2001,
MONTH=0,
WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,
DAY_OF_MONTH=5,DAY_OF_YEAR=5,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,
AM_PM=0,
HOUR=0,HOUR_OF_DAY=0,
MINUTE=0,
SECOND=0,
MILLISECOND=0,
ZONE_OFFSET=-28800000,DST_OFFSET=0]

值得注意的是,在“客户端机器”上时间用 utc +3 调整, 而在“服务器(实际安装 Alfresco 的位置)”上 - utc -8。

我们的假设是,Alfresco 预计上午 0:00 或下午 0:00,而上午 12 点是根据 UTC 时间范围汇总的。尽管这种情况已经很奇怪,但在更新之前以任何方式调整该值的时间根本没有帮助。比方说,设置时间

calendar.add(Calendar.HOUR_OF_DAY, 12);

结果

HTTP Status 409 - constraint
Constraint violation: 0418520818 Found 1 integrity violations:
Invalid property value:
Node: workspace://SpacesStore/eaf740b4-d22a-415a-9ca7-f58a8e115dbb
Name: vzv_diff
Type: {TestModel}DiffProperties
Property: {TestModel}ListDate
Constraint: 0418520817 The value is not an allowed value: 1/5/01 12:00 PM

Apache Workbench 的行为方式相同(但它没有选择):workbench没有任何变体适合这里。

我们已经为这个问题苦苦挣扎了很多天,但没有成功。

请帮忙。谢谢。

最佳答案

该属性具有值列表约束。您对约束的理解有误。如果您要添加列表约束,您将无法添加未列出的值。

因此,您将无法添加除列出的值之外的日期值。您需要删除约束,只需选择数据类型为日期。

在 d:date 类型中添加约束肯定会报错。原因如下。

更新:

首先,它会在保存值时检查是否是值列表,如果您将 2001-01-05 作为值传递,则超出了在约束情况下允许的值,但由于它是字符串值,因此不允许保存d:date。第二件事,如果你传递 java 的 date 对象,那么对应用的约束进行相等比较将失败。所以在这种情况下你有 2 个选择。

  1. 将 d:date 更改为 d:text
  2. 消除限制。

关于java - CMIS:日期选择列表包含不适合更新文档的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com