我正在使用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上保留一个新实体。
但是,我遇到一个问题:添加了一个新实体,但是,它的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。
您对解决该问题是否有任何想法?先生,非常感谢。
您可以尝试删除整个实体,然后使用新表名和新列名作为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。