#java #hibernate #spring-boot #hikaricp
#java #гибернация #весенняя загрузка #hikaricp
Вопрос:
Я пытаюсь получить данные пользователя по идентификатору из таблицы ‘User_Details’.
Но это выдает исключение, я знаю, что это просто, но я пытаюсь это сделать с пулом соединений HikariCP.Нужна помощь для устранения.
В этой таблице у меня всего 2 столбца:
- ID
- Имя
Это Pojo для сопоставления сущностей:
package com.example.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "USER_DETAILS")
public class UserDetails implements Serializable {
private static final long serialVersionUID = 1L;
//Mapping Unique ID
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID", nullable = false)
private int id;
//User Name For Employee
@Column(name = "NAME", nullable = false )
private String name;
// getters and setters
}
Исключение сопоставления :
> org.hibernate.hql.internal.ast.QuerySyntaxException: UserDetails is
> not mapped at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171)~[na:1.8.0_131]
Из UserDetailsDaoImpl я пытаюсь извлечь детали.
package com.example.repository;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.example.model.UserDetails;
@Repository
@Transactional
public class UserDaoImpl {
@Autowired
@Qualifier("sessionFactory")
SessionFactory sessionFactory;
public UserDetails getUser(int id){
UserDetails userDetails = null;
Session s = sessionFactory.getCurrentSession();
Query q = s.createQuery("From UserDetails Where id =:id ").setParameter("id", id);
List<UserDetails> u = q.list();
if(!u.isEmpty()){
userDetails = u.get(0);
}
return userDetails!= null? userDetails : null;
}
}
Комментарии:
1. похоже, вы не добавили объект в hibernate xml
2.
UserDetails is not mapped
это означает, что вы пытаетесь использовать объект, у которого нет никакого сопоставления. возможно, вам потребуется предоставить общий доступ к вашему коду, в котором вы пытаетесь выполнить запрос к БД. Кроме того, попробуйте использовать имя класса вместо имени таблицы в запросе3. не могли бы вы, пожалуйста, поделиться своим hibernate-cfg.xml файл.
4. Действительно здорово, если вы также предоставляете класс конфигурации. Кстати, я полагаю, возможно, проблема с конфигурацией. пожалуйста, посмотрите на этот пример o7planning.org/en/11665 /…
5. @Killer почему вы удалили трассировку стека? Я продолжаю запрашивать трассировки стека, поскольку они в некотором роде ценны. Я не понимаю, как это изменение может быть одобрено.