Voroba1996
@Voroba1996
JS разработчик

Ошибка Unable to locate persister: model.User, как исправить?

public static SessionFactory sessionFactory () {
        try {
            Configuration configuration = new Configuration();
            Properties prop= new Properties();

            prop.put(Environment.URL, URL);
            prop.put(Environment.USER, USER);
            prop.put(Environment.PASS, PASSWORD);
            prop.put(Environment.SHOW_SQL, false);
            prop.put(Environment.DIALECT, "org.hibernate.dialect.MySQLDialect");

            configuration.addProperties(prop);
            configuration.addAnnotatedClass(User.class);

            configuration.configure();

            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
                    .applySettings(configuration.getProperties())
                    .build();
            return configuration.buildSessionFactory(serviceRegistry);
        } catch (Throwable ex) {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }


И вот место где я его использую
public void saveUser(String name, String lastName, byte age) {
        Session session = sessionFactory.openSession();
        User user = new User(name, lastName, age);

        session.beginTransaction();
        session.save(user); // todo Заменить на метод не deprecated
        session.getTransaction().commit();
        session.close();
    }


Странно, что .addAnnotatedClass не отрабатывает должным образом, а вот кстати и сам класс User
@Entity
@Table
public class User {

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

    @Column (name = "userName")
    private String name;

    @Column
    private String lastName;

    @Column
    private Byte age;

    public User() {

    }

    public User(String name, String lastName, Byte age) {
        this.name = name;
        this.lastName = lastName;
        this.age = age;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Byte getAge() {
        return age;
    }

    public void setAge(Byte age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User {" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", lastName='" + lastName + '\'' +
                ", age=" + age +
                '}';
    }
}
  • Вопрос задан
  • 1269 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Veagud
Используйте не "javax.persistence", а "jakarta.persistence".
import jakarta.persistence.*;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
03 мая 2024, в 11:01
50000 руб./за проект
03 мая 2024, в 10:56
5000 руб./за проект
03 мая 2024, в 10:55
5000 руб./за проект