NetBeans генерирует JpaController с ошибками - PullRequest
2 голосов
/ 12 июня 2010

Я использую NetBeans 6.8 для сборки приложения Spring MVC.

Технологии:

  • Пружина MVC 2.5
  • Derby DB
  • Hibernate для ORM
  • Сервер GlassFish v3

Я использую Новые классы контроллера JPA из классов сущностей для добавления файла ORM. Предполагается создать класс для управления запросами с моими файлами POJO.

Проблема в том, что NetBeans генерирует следующий код и не компилируется:

public int getBrandCount() {
        EntityManager em = getEntityManager();
        try {
            CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
            Root<Brand> rt = cq.from(Brand.class);
            cq.select(em.getCriteriaBuilder().count(rt));
            Query q = em.createQuery(cq);
            return ((Long) q.getSingleResult()).intValue();
        } finally {
            em.close();
        }
    }

На картинке есть ошибка NetBeans: альтернативный текст http://i46.tinypic.com/dy0t1d.jpg

Похоже, метод getCriteriaBuilder из Интерфейс Entity Manager не реализован. Или по какой-то другой причине, почему я не могу использовать это в коде.

Я не знаю, какую еще информацию я должен предоставить, поэтому, пожалуйста, спросите, если что-нибудь приходит вам в голову.

Спасибо

Ответы [ 3 ]

2 голосов
/ 09 октября 2012

Я столкнулся с этой проблемой и обнаружил, что у меня есть библиотека Hibernate JPA (входит в состав Netbeans) выше библиотеки Persistence (JPA 2.0) в списке менеджера библиотеки проекта. Я переместил Persistence выше Hibernate, и это помогло решить проблемы с компиляцией.

1 голос
/ 13 июня 2010

NetBeans генерирует код JPA 2.0, поэтому для компиляции кода вам необходим API JPA 2.0 на пути к классам (и поставщик JPA 2.0 для его запуска).Поскольку вы используете Hibernate, вот библиотеки, необходимые для использования Hibernate Entity Manager 3.5.1-Final:

org.hibernate:hibernate-entitymanager:jar:3.5.1-Final:compile
+- org.hibernate:hibernate-core:jar:3.5.1-Final:compile
|  +- antlr:antlr:jar:2.7.6:compile
|  +- commons-collections:commons-collections:jar:3.2:compile
|  +- dom4j:dom4j:jar:1.6.1:compile
|  |  \- xml-apis:xml-apis:jar:1.0.b2:compile
|  \- javax.transaction:jta:jar:1.1:compile
+- org.hibernate:hibernate-annotations:jar:3.5.1-Final:compile
|  \- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile
+- cglib:cglib:jar:2.2:compile
|  \- asm:asm:jar:3.1:compile
+- javassist:javassist:jar:3.9.0.GA:compile
\- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.0.Final:compile
0 голосов
/ 10 декабря 2011

У меня похожая проблема при развертывании проекта с

  • Netbeans 7.0.1
  • Apache Tomcat 7
  • Hibernate 3

При отображении сущности класса из базы данных я смешал ее с аннотацией, чтобы контроллер мог быть сгенерирован Java Persistence Controller.Проблема такая же.Проблема getCriteriaBuilder, поскольку она не поддерживается JPA 1.0.Я проверил это в classpath проекта и обнаружил, что постоянная библиотека не используется, поскольку проект импортирует две постоянные библиотеки, которые являются постоянными библиотеками из ejb3 и EclipseLink (JPA2.0).

Когда я удаляю библиотеку персистентности ejb, getCriteriaBuilder прекрасно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...