В ресурсах Sun Online они приводят пример использования API 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_
для метамодели, но их импорт приведет к конфликту с именами переменных ... Я прав?
__
(вопрос также связан с этим one )