@parkito

Как вставить данные в таблицу в Hibernate?

Здравствуйте. Помогите пожалуйста решить следующую проблему.

Хочу добавить данные в таблицу MySQL базы. Успешно делаю это с помощью запроса

INSERT INTO Students
(student_id, firstname, lastname)
VALUES
  ('1', 'Artyom', 'Ivanov');


Данные добавляются , сохраняя уже имеющиеся в таблице кортежи.

Хочу сделать тоже самое в Hibirnate - в итоге получаю добавленный кортеж, но удаленные остальные.

Session session = Factory.getSessionFactory().openSession();
        session.beginTransaction();
        Query query1 = session.createSQLQuery("INSERT INTO Students\n" +
                "(student_id,firstname,lastname) \n" +
                "VALUES \n" +
                "('3','Ivan','Ivanov');");

        query1.executeUpdate();
        session.getTransaction().commit();
        session.close();
        System.out.println("Succsess!");


Подскажите пожалуйста, как нужно организовать программу для успешного добавления данных в таблицу без удаления уже существующих?
  • Вопрос задан
  • 3931 просмотр
Пригласить эксперта
Ответы на вопрос 1
@ruslanys
Hibernate подразумевает, что работать Вы будете с объектами, а не с SQL запросами. В конце концов используйте JDBC, если хотите оставить вариант с SQL.

В Hibernate задача будет решаться примерно так (хочу отметить, что по спецификации каждый объект должен иметь уникальный ключ - ID):
@Entity
@Table(name = "students")
@Data
public class Student extends BaseModel {

    @Id
    private Long id;

    @Column
    private Long studentId;

    @Column
    private String firstname;

    @Column
    private String lastname;

}


Сохранение:
...
public Student add(Student student) {
    Session session = sessionFactory.getCurrentSession();
    student.setId(null); // добавить новую запись, а не изменить существующую
    session.save(student);

    return student;
}
...
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект