java - 如何在 Caché 中使用 Java 方法?

标签 java intersystems-cache objectscript

我最近读到可以通过使用语言属性在类中使用 Java 方法。

我试过这个:

Method JavaTest() As %String [ Language = java, WebMethod ]
{
    string tmp = "Hello World";
    return tmp;
}

代码可以编译,但是调用方法时会返回错误:

ERROR #5002: Cache error: <METHOD DOES NOT EXIST>

最佳答案

据我所知,当您使用 %Projection.Java 类从 Cache 创建 Java 类时,存在此功能。无论如何,如果您确实使用 Java 投影,那么该方法实际上会投影到创建的 Java 类。

Class SomePackage.JavaTest Extends %Persistent
{

Method JavaTestyTest() As %String [ Language = java, WebMethod ]
{
    string tmp = "Hello World";
    return tmp;
}
Method bleh() as %Library.String
{
    q "bleh"
}
Projection NewProjection1 As %Projection.Java(ROOTDIR = "C:\trans");

}

生成的 Java 太多,无法显示所有内容,但它包括

public java.lang.String JavaTestyTest () {
       string tmp = "Hello World";
       return tmp;
}

public java.lang.String bleh () throws com.intersys.objects.CacheException {
    com.intersys.cache.Dataholder[] args = new com.intersys.cache.Dataholder[0];
    com.intersys.cache.Dataholder res=mInternal.runInstanceMethod("bleh",args,com.intersys.objects.Database.RET_PRIM);
    return res.getString();
}

关于java - 如何在 Caché 中使用 Java 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12863628/

相关文章:

java - 在cmd上执行进程,不处理

mybatis foreach 但提交单独的插入

java - 在 "Unicode"安装中,ObjectScript 的变量名中可以使用哪些字符?

syntax - 系统间缓存对象脚本通过引用将属性作为参数传递

java - 在我没有调用的方法上执行期间出错

java - Spring Boot 动态查询

javascript - 在 Google Chrome 上同时挂起异步和同步请求

coding-style - 缓存对象脚本代码指南

intersystems-cache - 意外的 SQL 错误在系统间缓存中返回 <UNDEFINED>

java - 形成丢失的波兰字符