Новый объект сохраняется с нулевым идентификатором (id = 0) - PullRequest
0 голосов
/ 25 октября 2019

Я использую Hibernate 4.3.11 . У меня есть следующая сущность:

@Entity
@Table(name="ESP_RETARD")
public class ESP_RETARD implements Serializable
{
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name = "pk_seqret", sequenceName = "ESP_RETS_SEQ1", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pk_seqret")
    @Column(nullable = false)
    @NotNull
    private long idRetard;

Я пытался сохранить новую сущность на ESP_RETARD .

Но я столкнулся с проблемой: добавлена ​​новая сущность, однако, это с идентификатором 0 .

во второй раз, чтобы добавить новый, я получил это исключение:

javax.persistence.PersistenceException: org. hibernate.exception.ConstraintViolationException: не удалось выполнить оператор

...

Причина: org.hibernate.exception.ConstraintViolationException: не удалось выполнить оператор

...

Причина: java.sql.SQLException: ORA-00001: нарушение уникального ограничения (EDTINGA.SYS_C009525)

Знание того, что: когда я использовал:

==> Так что это проблема банок, я полагаю, что нужно добавить пропущенные банкина Hibernate 4.3.11 .

У вас есть какие-либо идеи по поводу решения этой проблемы? Большое спасибо, сэр.

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете попробовать удалить всю сущность, а затем заново создать ее с новым именем таблицы и новым именем столбца для идентификатора.

Не забылдля изменения номинации на @SequenceGenerator и @GeneratedValue.

Действительно, нет необходимости использовать ни @Column(nullable = false), ни @NotNull.

    @Id
    @SequenceGenerator(name = "pk_seqret1", sequenceName = "RETS_SEQ1", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pk_seqret1")
    private long idRetard;

HTH.

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