2015-12-05 6 views
0

Я пытаюсь выполнить namedQuery из объекта Item, но это приводит к ошибке, указывающей, что namedQuery не может быть найден.NamedQuery не найден

Я также пытался получить другие namedQuery, но они также не могли быть найдены.

Сущность с именованным запросом.

@Entity 
    @NamedQueries({ 
     @NamedQuery(name = "Item.getAll", query = "select a from Item as a"), 
     @NamedQuery(name = "Item.count", query = "select count(a) from Item as a"), 
     @NamedQuery(name = "Item.findByDescription", query = "select a from Item as a where a.description = :descriptions") 
    }) 
    public class Item implements Comparable, Serializable { 

     @Id 
     @GeneratedValue(strategy = GenerationType.IDENTITY) 
     private Long id; 

     @OneToOne 
     @JoinColumn(name="email") 
     private User seller; 

     private Category category; 
     private String description; 

     @OneToOne 
     private Bid highest; 

     public Item(User seller, Category category, String description) { 
      this.seller = seller; 
      this.category = category; 
      this.description = description; 
     } 

     public Item() { 

     } 

(Getters and setters) 

Где я пытаюсь найти namedQuery из Item.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("auctionPU");  

public List<Item> findByDescription(String description) { 
     EntityManager em = emf.createEntityManager(); 
     em.getTransaction().begin(); 
     try { 
      Query q = em.createNamedQuery("Item.findByDescription", Item.class); 
      q.setParameter("descriptions", description); 
      List<Item> a = q.getResultList(); 
      em.close(); 
      return a; 
     } 
     catch (NoResultException e) { 
      return null; 
     } 
     finally { 
      em.close(); 
     } 
    } 
+0

post pe rsistence.xml –

+0

Вы сделали это, забыли добавить Enity в persistence.xml – Davidto

ответ

0

Эта ошибка отображается, когда конфигурация не является подлинной. Что вы используете весеннюю загрузку или весну ??? кажется, что вы не сканируя пакет, в котором вы с именем запроса находится, отсканировать

<property name="packagesToScan" value="your_base_package_of_model_pojo.**"/> 

ИЛИ

В яровой ботинке

Добавить

@EntityScan("your_base_package_of_model_pojo") 

к вашему классу конфигурации

+0

или, может быть, он не использует ни один из этих ... –

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