我正在实现一个通过Java Gateway将Caché应用程序与Java应用程序集成的解决方案。在Java应用程序中,我有一个对象具有数据类型“java.util.Date”的属性,我必须在Caché应用程序中设置它。 Caché我可以使用什么数据类型以及如何在Caché中设置此变量?
代码:
S data = ???
S obj = ##class(my.objectClass).%New(gateway)
D obj.setDh(data)
班级my.objectClass
是代理类,setDh()
中参数的数据类型为java.sql.Date
。
何时可以设置data
变量?
此致
Lucas Boeing Scarduelli。
答案 0 :(得分:1)
正如Java Proxy Class Mapping指出的那样,java.sql.Date
与Caché类型DATE
的映射,您可能会建议使用它。
由于java.sql.Date
是java.util.Date
的子类,而java.sql.Date
的构造函数在Java端进行java.util.Date
转换应该非常简单。
答案 1 :(得分:0)
我通过以下解决方案解决了我的问题。
在Java应用程序中,在类my.objectClass
上,我将属性指定为java.sql.Timestamp
,因此setDh()具有相同的数据类型参数。
在Caché应用程序中,当我必须分配此代理类的值时,我这样做:
S data = $ZDT($H,3)
S obj = ##class(my.objectClass).%New(gateway)
D obj.setDh(data)
为什么使用java.sql.Timestamp
而不是java.sql.Date
?
基本上因为在我的情况下我需要日期和时间信息,而java.sql.Date
的本地解析器只考虑日期信息。 java.sql.Timestamp
本机解析器已经考虑了日期和时间信息。