J'ai une existante de travail requête qui sélectionne une colonne d'une entité mappée à une vue Oracle en utilisant les éléments suivants JPQLImpossible de sélectionner une colonne à partir d'un Oracle View en utilisant l'API critères JPA 2
SELECT COUNT(o.id) FROM MyEntityView o
I refactorisé à utiliser l'API de critères JPA 2 avec le code suivant:
MyEntityView model = new MyEntityView();
CriteriaBuilder criteriaBuilder = model.entityManager().getCriteriaBuilder();
CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class);
Root<MyEntityView > theView = criteriaQuery.from(MyEntityView.class);
criteriaQuery.select(criteriaBuilder.count(theView.get(MyEntityView_.id))); // ERROR!
TypedQuery<Long> query = model.entityManager().createQuery(criteriaQuery);
....
Mais il génère l'erreur suivante sur la création de l'instruction select:
java.lang.NullPointerException
at org.hibernate.ejb.criteria.path.AbstractPathImpl.unknownAttribute(AbstractPathImpl.java:110)
at org.hibernate.ejb.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:218)
at org.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:189)
at com.mycomp.domain.view.MyEntityViewIntegrationTest.testMarkerMethod(MyEntityViewIntegrationTest.java:35)
J'ai essayé de changer le mappage à une table au lieu d'une vue et le ne fonctionne pas correctement.
Est-ce un bug d'Hibernate ou manque-t-il quelque chose?
Récupération de colonne modifiée de String à MetaModel pour éviter toute confusion. – Joopiter