通过Gateway Java

时间:2015-12-09 13:16:29

标签: java intersystems-cache intersystems intersystems-ensemble

我正在实现一个通过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。

2 个答案:

答案 0 :(得分:1)

正如Java Proxy Class Mapping指出的那样,java.sql.Date与Caché类型DATE的映射,您可能会建议使用它。 由于java.sql.Datejava.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本机解析器已经考虑了日期和时间信息。