1

我正在实现一个解决方案,该解决方案通过 Java 网关将 Caché 应用程序与 Java 应用程序集成在一起。在 Java 应用程序中,我有一个对象,它具有数据类型“java.util.Date”的属性,我必须在 Caché 应用程序中设置它。我可以使用什么数据类型 Caché 以及如何在 Caché 中设置这个变量?

代码:

S data = ???
S obj = ##class(my.objectClass).%New(gateway) 
D obj.setDh(data)

该类my.objectClass是代理类,参数 in 的数据类型setDh()java.sql.Date

什么时候可以设置data变量?

问候,

卢卡斯波音斯卡杜利。

4

2 回答 2

1

正如Java Proxy Class Mapping指出的那样,有一个java.sql.Dateto Caché type的映射DATE,建议您使用它。Asjava.sql.Date是一个子类,java.util.Date并且java.sql.Date有一个java.util.Date在 Java 端进行转换的构造函数应该非常简单。

于 2015-12-09T13:45:54.610 回答
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本机解析器已经考虑日期和时间信息。

于 2015-12-11T11:19:51.763 回答