我使用Olingo2/JPA和基于GitHub repository的spring-boot创建了一个odata服务。
问题是olingo没有按照Odata标准(或者微软标准)中定义的正确格式返回日期/时间或时间戳列。我的意思是我的前端库(即OpenUI5)希望Edm.DateTime
列有<d:ValidFrom>/Date(1579075200000)/</d:ValidFrom>
这样的值,但olingo返回的是<d:ValidFrom>2020-01-15T08:00:00</d:ValidFrom>
,OpenUI5不接受!
你的建议是什么?
1-是否有办法强制Olingo以Microsoft定义的格式返回数据/时间或时间戳?(即/Date(timestamp)/
)
2-OpenUI5是否可以接受yyyy-MM-ddTHH:mm:ss
的日期\时间?
2条答案
按热度按时间vxf3dgd41#
正如我在注解中与@Marc讨论的那样,
XML
的olingo
以yyyy-MM-ddTHH:mm:ss
的格式返回data\time
或timestamp
列:只要我们通过在URL中传递
?$format=json
来请求JSON
的输出,data\time
值就会以时间戳的格式返回,同时该值被/Date()
字符串括起来,以显示它是data/time
值。(此标准由Microsoft定义!)在
UI5
中,如果你要存储数据以提供给你的模拟服务器,那么需要将数据存储在JSON
文件中,显然date\time
值必须像/Date(timestamp)
一样存储。6bc51xsx2#
在这种情况下,您需要在JPA中创建如下字段:
然后将JavaType时间戳转换为相应的EdmType日期时间偏移:
在设计Olingo OData元数据时需要进行转换。