我正在使用休眠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 上保留一个新实体。
但是,我遇到一个问题:添加了一个新实体,但是它的ID为0 。
第二次添加一个新的,我得到了这个例外:
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException:无法 执行语句
...
原因:org.hibernate.exception.ConstraintViolationException:可能 不执行语句
...
原因:java.sql.SQLException:ORA-00001:唯一约束 (EDTINGA.SYS_C009525)已违反
知道这一点:当我使用时:
==>所以这是jar的问题,我想必须将其遗漏的jar添加到 Hibernate 4.3.11 。
您是否对解决该问题有任何想法? 非常感谢先生。
答案 0 :(得分:0)
您可以尝试删除整个实体,然后使用新表名和新列名作为ID重新创建。
不要忘记更改@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。