Отдельная сущность передана для сохранения - Hibernate + JavaFX - PullRequest
0 голосов
/ 14 марта 2019

Я новичок в Hibernate, и мне нужна помощь.

У меня есть таблица с именем Kasa с 3 атрибутами - id, address и account_id. В моей таблице 12 строк. Я хочу отобразить это с помощью Hibernate и добавить новый с помощью Java, поэтому я сделал это:

   @Entity
    @Table(name = "kasa")
    public class Kasa {

        @Id
        @GeneratedValue(generator = "incrementor")
        @GenericGenerator(name = "incrementor", strategy = "increment")
        @Column(name = "ID_KASA")
        private  int id;

        @Column(name = "ADRES")
        private String adres;

        @Column(name = "ID_KONTO")
        private  int id_konta;
     }

У меня также есть геттеры и сеттеры, но мне не нужно их копировать.

Теперь я хотел бы добавить новую строку в мою базу данных, например:

EntityManagerFactory entityManagerFactory = 
Persistence.createEntityManagerFactory("org.hibernate.jpa");

        Kasa kasa = new Kasa();

        kasa.setId(1);
        kasa.setAdres("Kolorowaa");
        kasa.setId_konta(2);

        EntityManager entityManager = 
        entityManagerFactory.createEntityManager();
        entityManager.persist(kasa);
        entityManager.getTransaction().commit();
        entityManagerFactory.close();

И я получаю ошибку вот так: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: отдельная сущность передана в постоянное состояние: model.beans.Kasa

Он указывает на эту строку: entityManager.persist (kasa);

Я думаю, что проблема может быть связана с ID моего класса 'Kasa', потому что он генерируется автоматически.

Для своей конфигурации я использую файл persistence.xml - соединение с БД работает нормально. Просьба помочь:)

1 Ответ

1 голос
/ 14 марта 2019

Не устанавливайте ID! Если вы сделаете это, JPA вещи Каса уже в базе данных.

Идентификатор базы данных должен быть установлен JPA. Там вы должны определить стратегию Ключ должен быть рассчитан. Это то, что все тезисы ... @Generate ... теги делают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...