在Sun在线资源中,他们提供了一个关于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**);
Pet_
是EntityType
类的一个实例,该类没有定义名为owners
或addresses
的任何属性。它们确实为元模型定义了名为
Pet_
和Owner_
的类,但在此处导入将与变量名产生冲突...我是对的吗?(这个问题也与这个问题有关。)
CriteriaQuery.join
。 - Kalle Richter