2014-09-24 1 views
3

Я использую Maven 3, JPA 2.1 и Hibernate 4.3.5.Final. Я хочу использовать JPA 2.1, потому что он предлагает несколько функций, особенно добавляя условия к предложениям внешнего внешнего соединения. Я включил следующие зависимости в моей Maven проекта ...Как включить функцию JPA 2.1 в проект Maven?

<dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.1-api</artifactId> 
     <version>1.0.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.3.2.Final</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>slf4j-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.3.6.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-ehcache</artifactId> 
     <version>4.3.6.Final</version> 
    </dependency> 

Однако, когда я пытаюсь скомпилировать следующее, я получаю ошибку компиляции («не может найти символ») на «.По («п.

final CriteriaBuilder cb = m_entityManager.getCriteriaBuilder(); 
    CriteriaQuery<Message> query = cb.createQuery(Message.class); 
    Root<Message> messageRoot = query.from(Message.class); 
    final Join<Message, Group> groupJoin = messageRoot.join(Message_.group); 
    final Join<Message, MessageReadDate> msgReadDateJoin = messageRoot.join(Message_.messageReads, JoinType.LEFT); 
    msgReadDateJoin.on(msgReadDateJoin.get(MessageReadDate_.recipient), recipient); 

Какие библиотеки мне нужно включить в мой проект Maven, чтобы получить JPA 2.1 и, следовательно, «join.on» функциональность?

+0

Можете ли вы также включить свой заказ? – Denise

ответ

1

это может быть проблемой Maven. Обычно бывает, если банки, что загруженные по какой-то причине повреждены. Удалите хранилище папок .m2 и выполните mvn install, он должен принести все enw банки и компиляцию.

m2 Папка here

+0

Я удалил все в своих папках ~/.m2/org/hibernate, перестроил, но все еще получил ошибку компиляции. – Dave

+1

@Dave Если вы используете eclipse, можете ли вы перемещаться по файлу jar и посмотреть, что находится в файле Join.class файла jar JPA? Подсказка: сделайте F3 в классе Criteriabuilder, тогда класс Join должен быть рядом с ним, если они находятся в одном пакете – Zeus

 Смежные вопросы

  • Нет связанных вопросов^_^