Привет всем, у меня есть Hibernate класс, как показано ниже:
@NamedQueries({
@NamedQuery(name = "getUser", query = "from tuser u where u.username =:username and u.passwordHash = :password"),
@NamedQuery(name = "getUserId", query = "select u.id from tuser u where u.username =:username"),
@NamedQuery(name = "getAllUsers", query = "from tuser u where u.state='1'"),
@NamedQuery(name = "loadUser", query = "from tuser u where u.username =:username"),
@NamedQuery(name = "changeState",query="update tuser u SET u.state='0' where u.id=:id")
})
@Entity
@Table(name = "tuser", catalog = "apw", uniqueConstraints = {
@UniqueConstraint(columnNames = "username"),
@UniqueConstraint(columnNames = "email") })
public class User implements java.io.Serializable {
}
1. Имя POJO: Пользователь2. Таблица Oracle: tuser (потому что у меня ошибка, если в качестве имени таблицы указать «user»)
Вот за услугу:
public interface UserService extends GenericService<User> {
public void deleteUser(int id);
public User loadUser(String username);
public List<User> getAllUsers();
User getUser(String username,String password);
}
Когда я запускаю программу, появляется ошибка, как показано ниже:
2018-04-26 11:30:14,610 [localhost-startStop-1] ERROR org.hibernate.internal.SessionFactoryImpl - HHH000177: Error in named query: loadTuser
org.hibernate.hql.internal.ast.QuerySyntaxException: tuser is not mapped [from tuser u where u.username =:username]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96)
...
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: tuser is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
<<< То же самое и для getAllUsers, deleteUser, getUser >>>
Наконец, мой вопрос: как сопоставить @NamedQuery с таблицей Oracle?
Спасибо, и я извиняюсь за плохой английский.