Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa unidata命令从两个文件中查询数据_Jpa_Openjpa_U2_Unidata - Fatal编程技术网

Jpa unidata命令从两个文件中查询数据

Jpa unidata命令从两个文件中查询数据,jpa,openjpa,u2,unidata,Jpa,Openjpa,U2,Unidata,我的unidata数据库中有两个文件,如下所示 客户 -@CUSTOMERID -NAME -@HOBBYID (multi-valued, virtual attribute) HOBBY -@HOBBYID -HOBBY 客户和爱好是一对多关系。我想查询符合某种爱好的客户名单。unidata命令是什么 期待一个解决方案。谢谢。这里是一个简单的查询,您可以在ECL提示符下运行 用HOBBY=“MyHobby”@CUSTOMERID@CUSTOMERI

我的unidata数据库中有两个文件,如下所示

客户

    -@CUSTOMERID
    -NAME
    -@HOBBYID (multi-valued, virtual attribute)
HOBBY

    -@HOBBYID
    -HOBBY
客户
爱好
是一对多关系。我想查询符合某种爱好的客户名单。unidata命令是什么


期待一个解决方案。谢谢。

这里是一个简单的查询,您可以在ECL提示符下运行

用HOBBY=“MyHobby”@CUSTOMERID@CUSTOMERID.NAME列出业余爱好

让我解释一下

当您查看多对1关系时,如果您从“多”表开始,您可以使用虚拟字典项来执行此操作(我知道,这是违反直觉的,对吧?)

列出爱好

    -@HOBBYID
    -HOBBY
在这里,我们只是指示引擎简单地显示爱好文件中的数据

与WITH HOBBY=“MyHobby”

我假设您已经创建了一个名为HOBBY的字典项——可能是指向正确属性的D类型

@CUSTOMERID

另一个假设是,您有一个D类型字典项,它指向HOBBY中的属性,该属性具有@CUSTOMERID。为了这个答案,我假设@CUSTOMERID是一个值。这只是告诉列表显示每个记录的这段信息

@CUSTOMERID.NAME

这是一个I型字典,如果您还没有创建,您需要创建它。基本上,在字典项的属性2中,您会有类似于
TRANS(“CUSTOMER”,“CUSTOMERID”,2,“X”)
的内容。这告诉它读取当前嗜好记录的ID为@CUSTOMERID的记录,并返回属性2(我假设属性2是存储客户名称的地方,根据需要更改。“X”告诉TRANS函数只返回一个空字符串,因为找不到客户记录。

Dan

我想你已经假设了更多。提供的信息并不意味着两个方向都有链接,只是
CUSTOMER
文件中包含了爱好代码

根据提供的信息,这应该是可行的:

LIST CUSTOMER WITH @HOBBYID "MyHobby" NAME @HOBBYID
或者,如果您想使用
HOBBY
而不是
@HOBBYID
来比较/选择:

LIST CUSTOMER WITH EVAL "TRANS(HOBBY,@HOBBYID,HOBBY,'X')" = "MyHobby" NAME @HOBBYID

当然,如果您在
CUSTOMER
字典中创建了一个翻译字典项,可以用来代替“EVAL…”子句,那就更好了。

这里的@CUSTOMERID是多值的;或者“HOBBY”文件的结构如何允许您每个HOBBY有多个客户。另外,这是关于U2的UniJ的问题吗私人助理司机?如果是,请发送电子邮件u2askus@rs.com因为产品经理很想和您谈谈您对它的使用。谢谢!我真的很喜欢您在示例中使用的
@filename
样式。我可能会建议使用
@filename.dictname
结构,这对任何TRANS-type字典都很有用。我喜欢
@CUSTOMER.ID
@CUSTOME>R.NAME
用于您上面使用的示例。它可以立即清楚地表明它是一个TRANS类型,它从哪个文件访问数据,以及该文件的属性是什么。您好,rbl,我的答案是在他们进行澄清编辑之前。如果您查看问题历史记录,您将看到结构与之前略有不同。请注意ker建议@HOBBYID是多值的,所以TRANS不适用于该字段。不过,在他们的具体案例中,“虚拟属性”是什么意思还不清楚,所以澄清这一点可能会再次改变答案。嘿,伙计们,很抱歉这个问题不清楚。我使用的是u2jpa驱动程序。我想知道当我“列出客户”时的查询,它可以向我返回客户信息(@CUSTOMERID,NAME,@HOBBYID,HOBBY)。@Dan McGrath,无意冒犯,我看不到历史。我使用的是universe,而不是unidata,因此可能TRANS函数在那里有所不同,但在universe上,它在多值字段上工作得很好。