这个问题是Alfresco Community中的问题的副本。
在我们公司,我们使用Alfresco添加了新的TestModel和ListDate属性。
接下来,我们使用CMIS Apache Chemistry连接器返回选项列表:
如果选择其中一个值进行更新,则会显示错误。例如,如果我们选择第一个(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点或下午0点开始,而上午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的行为方式相同(但它没有选择): 这里没有变体适合。
我们一直在努力解决这个问题,但没有成功。
请帮忙。 感谢。
答案 0 :(得分:1)
该属性具有约束值。您对约束的理解有误。如果要添加列表约束,则无法添加未列出的值。
因此,除了列出的值之外,您无法添加日期值。您需要删除约束,只需选择数据类型作为日期。
在d:date类型中添加约束会出错.Below是相同的原因。
<强>更新强>
首先,它会检查,而保存值是值列表,如果您传递2001-01-05作为值,而不是在约束的情况下允许,但因为它是一个字符串值,它将不允许保存d:date。第二件事,如果你传递了java的日期对象,那么应用约束的相等比较就会失败。所以你在这种情况下有2个选项。