Java JPA/元模型:Sun文档中的奇怪(不一致?)示例
在中,他们提供了一个关于Criteria/Metamodel API使用的示例,但就我对Java的理解而言,这似乎是不可能的: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
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类型生成的类,而不是同时使用两者。在他们的例子中,
宠物(这是一个令人难以置信的错误命名选择,并且具有误导性)确实没有任何所有者
属性。
这应该报告,这部分教程是误导和错误的
另见
没有标准查询。也加入。