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
Java JPA/元模型:Sun文档中的奇怪(不一致?)示例_Java_Jpa_Jpa 2.0_Criteria Api_Metamodel - Fatal编程技术网

Java JPA/元模型:Sun文档中的奇怪(不一致?)示例

Java JPA/元模型:Sun文档中的奇怪(不一致?)示例,java,jpa,jpa-2.0,criteria-api,metamodel,Java,Jpa,Jpa 2.0,Criteria Api,Metamodel,在中,他们提供了一个关于Criteria/Metamodel API使用的示例,但就我对Java的理解而言,这似乎是不可能的: CriteriaQuery<Pet> cq = cb.createQuery(Pet.class); Metamodel m = em.getMetamodel(); EntityType<Pet> Pet_ = m.entity(Pet.class); EntityType<Owner> Owner_ = m.entity(Owne

在中,他们提供了一个关于Criteria/Metamodel API使用的示例,但就我对Java的理解而言,这似乎是不可能的:

CriteriaQuery<Pet> cq = cb.createQuery(Pet.class);
Metamodel m = em.getMetamodel();
EntityType<Pet> Pet_ = m.entity(Pet.class);
EntityType<Owner> Owner_ = m.entity(Owner.class);

Root<Pet> pet = cq.from(Pet.class);
Join<Owner, Address> address = cq.join(**Pet_.owners**).join(**Owner_.addresses**);
CriteriaQuery cq=cb.createQuery(Pet.class);
元模型m=em.getMetamodel();
EntityType Pet=m.entity(Pet.class);
EntityType所有者=m.entity(Owner.class);
根pet=cq.from(pet.class);
加入地址=cq.Join(**宠物主人**)。加入(**主人地址**);
Pet
是类的一个实例,不定义任何名为
owners
addresses
的属性

它们确实为元模型定义了名为
Pet_
Owner_
的类,但是在这里导入它们会与变量名产生冲突。。。我说得对吗

__


(问题也与此相关)

此示例不正确
,作者将标准静态元模型类(生成的)与通过元模型API获得的类混合在一起。它们应该使用弱类型API或stronlgy类型生成的类,而不是同时使用两者。在他们的例子中,
宠物(这是一个令人难以置信的错误命名选择,并且具有误导性)确实没有任何
所有者
属性。 这应该报告,这部分教程是误导和错误的

另见

没有
标准查询。也加入