EJB веб-сервис, сущность не отображается ошибка

1

У меня есть класс класса User

@Entity(name = "user")
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

@Column(unique = true, nullable = false)
private String email;

  /** skipped **/

И класс EJB DAO без гражданства (я использую jpa/hibernate) с методом

@Override
public User findByEmail(String name) {
    TypedQuery<User> query = entityManager.createQuery("from User where email= :email", User.class);
    query.setParameter("email", name);
    return query.getSingleResult();
}

Когда я выполняю этот метод со страницы (используя jsf), он отлично работает. Проблема возникает, когда я запускаю этот метод из компонента WebService EJB. У меня есть следующее исключение

org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped [from User where email= :email] 

Мой веб-сервис очень прост:

@Stateless(name = "webServiceBean")
@WebService(serviceName = "webService")
public class MyWebService{

@EJB
private UserDao dao;

public String findUser(String email) {
    return dao.findByEmail(email);
}

}

Приложение развернуто на JBoss7. Я использую EJB 3.1 и hibernate 4.3. Кто-нибудь знает, в чем причина этого исключения? И почему это происходит только в WebService?

Теги:
hibernate
jpa
web-services
ejb-3.1

1 ответ

1
Лучший ответ
  1. Убедитесь, что User, вместе с именем пакета, указан в файле конфигурации hibernate.
  2. Либо используйте только @Entity или @Entity(name = "User"). Вы назвали свою сущность как user но в своем запросе пытаетесь ссылаться на нее как на User.

Проверьте документы для @Entity name @Entity.

public abstract java.lang.String name

(Необязательно) Имя объекта. По умолчанию используется неквалифицированное имя класса сущности. Это имя используется для обозначения объекта в запросах. Имя не должно быть зарезервированным литералом на языке запросов Java Persistence.

  • 0
    Изменение пользователя в нижний регистр в запросе исправлена проблема. Благодарю.
  • 0
    Добро пожаловать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню